利用flex完成圣杯布局

作者: 鸭梨山大哎 | 来源:发表于2017-07-12 10:19 被阅读78次

    基本思路

    1首先完成header,footer,main的布局。
    利用flex-direction: column;完成上述内容的竖向布局。

    2.之后再完成main之内的三部分的布局。
    这个是横向布局

    3 重点理解一下flex:1的意思。如果某个元素flex:1且没有设置宽度,则该元素占满空间。

    4body是header,footer,main的容器,body中的display:flex;控制header,footer,main的布局。
    main是left,right,content的容器,main中的display:flex;控制left,right,content的布局不要混淆。

    <style type="text/css">
    * {
        margin:0;
        padding:0;
    }
    body {
        display:flex;/* 头、中部、脚纵向显示 */
        flex-direction: column;/* 头、中部、脚纵向显示 */
    }
    
    header,footer {
        flex:0 0 50px;/* 头、脚尺寸固定,不放大、不缩小 50px指的是高度*/
        background: pink;
    }
    
    #main {
        display:flex;/*control content left right*/
        flex:1; /* flex:1指的是等分,但是由于是纵向排列,所以实际上就是自己占满中部空间*/
    }
    
    #content {
        background: palegoldenrod;
        flex:1;/*content没设置宽度,没设置宽度就默认全屏宽度。
        flex:1指的是等分,但是由于是纵向排列,所以实际上就是自己占满中部空间 */
    }
    
    #left,#right{
        background: paleturquoise;
        flex:0 0 100px;/*设置left和right的宽度为100px,第一个参数0表示不扩张,第二个0表示不收缩 */
    }
    
    #left {
        order:-1;/*设置left的位置为最左边 */
    }
      
    </style>
    
    <body>
        <header></header>
        <div id="main">
            <div id="content"></div>
            <div id="left"></div>
            <div id="right"></div>
        </div>
        <footer></footer>
    </body>
    

    结果如图

    image.png

    相关文章

      网友评论

        本文标题:利用flex完成圣杯布局

        本文链接:https://www.haomeiwen.com/subject/jfavhxtx.html