美文网首页
一个例子 - 看懂圣杯布局

一个例子 - 看懂圣杯布局

作者: Jason_Zeng | 来源:发表于2020-04-13 16:41 被阅读0次

    代码解释如下

    html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    
    <body>
        <div class="middle">middle</div>
        <div class="left">left</div>
        <div class="right">right</div>
    </body>
    </html>
    

    css

    
        html, body {
            height: 100%;
            margin: 0;
        }
    
        body {
            padding:0 200px;  /* 设置padding用于框住middle, 让左右有空间占位 */
        }
    
        .middle {
            background: grey;
            width: 100%; /* 撑满父元素 */
            height: 100px;
            float: left;  /* 浮动 */
        }
    
        .left {
            width: 200px;
            background: pink;
            height: 100px;
            float: left;  /* 浮动 */
            left: -200px; /* 用于再往左边移动自身宽度来不遮住middle */
            position: relative; /* 相对定位才可以left */
            margin-left: -100%;  /* 负margin就是-100%相当于往左边移动100%父元素的宽度,就会移动到上一行中的开头 */
        }
    
        .right {
            float: left;
            width: 200px;
            background: lightseagreen;
            height: 100px;
            position: relative;
            margin-left: -200px; /* 移动自身宽度可以到上一行*/
            right: -200px; /*由于有padding的存在所以再移动一个偏移自身的距离*/
        }
       
    

    效果如下

    image.png

    宽度变小BUG

    怎么解决呢,看下一篇双飞翼布局,把middle包裹一个div就可以了


    image.png

    参考:https://blog.csdn.net/Sallywa/article/details/89281231

    相关文章

      网友评论

          本文标题:一个例子 - 看懂圣杯布局

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