圣杯布局

作者: 我小时候很可爱 | 来源:发表于2020-07-11 00:21 被阅读0次

    圣杯布局

    所谓圣杯布局是前端开发中常用的布局方式也是面试常问的问题。所以必须掌握起来。主要是实现一个两侧宽度固定,中间宽度自适应的三栏布局

    实现步骤

    1. 中间元素在布局时候在左右元素的上方
    2. 三个布局元素都要向左浮动
    3. 在父元素身上设置padding值,值的大小为左右盒子的宽度
    4. 左盒子设margin-left:-100%,设置相对定位,移动盒子为了不挡住中间盒子
    5. 右盒子设margin-right:-(盒子自身宽度)
    6. 中间盒子设置width:100%,实现自适应
    7. 设置最小宽度,让在宽度达到指定值以后布局不会乱

    具体实现

    1. 布局设置
    <div class="container">
       <div class="center">主盒子</div>
       <div class="left">左盒子</div>
       <div class="right">右盒子</div>
    </div>
    
    1. 设置padding值
    .container 
    {
      height: 200px;
      padding: 0 200px;
      background-color: tomato;
    }
    
    1. 设置主盒子,和左右盒子基本样式
    .center{
                float: left;
                width: 100%;
                height: 200px;
                background-color: thistle;
            }
    .left {
                float: left;
                width: 200px;
                height: 200px;
                background-color: chartreuse;
            }
    .right {
                float: left;
                height: 200px;
                width: 200px;
                background-color: chocolate;
            }
    
    1. 为左盒子设置相对定位、负外边距
    .left {
                position: relative;
                left: -200px;
                float: left;
                width: 200px;
                height: 200px;
                margin-left: -100%;/*重点*/
                background-color: chartreuse;
            }
    

    设置相对定位是为了将盒子移动到事先准备好的padding值的范围内,实现不遮住主盒子内容

    1. 为右盒子设置负外边距
    .right {
                float: left;
                height: 200px;
                width: 200px;
                margin-right: -200px;
                background-color: chocolate;
            }
    

    外边距的详细说明请点击这里

    1. 设置最小宽度

      想保证该布局效果正常显示,由于两侧都具有固定的宽度,所以需要给定页面一个最小的宽度,但这并不只是简单的200+200=400px。回想之前left使用了position: relative,所以就意味着在center开始的区域,还存在着一个left的宽度。所以页面的最小宽度应该设置为200+200+200=600px

    body {
                min-width: 600px;
            }
    

    这样我们就实现了一个响应式的三栏布局形式

    相关文章

      网友评论

        本文标题:圣杯布局

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