圣杯布局的实现

圣杯布局其实是要实现一个三列布局,左右两边宽度固定,中间自适应
圣杯布局实现步骤:
1.将中间内容前置

<div class="container">
  <div class="middle">中间</div>
  <div class="left">左边</div>
  <div class="right">右边</div>
</div>

2.每个div设置一个浮动,中间宽度为100%,左右宽度固定

 .container{
      height: 200px;
      overflow: hidden;
    }
    .container>div{
      float: left;
    }
    .middle{
      width: 100%;
      background-color: #ff5555;
    }
    .left{
      width: 200px;
      background-color: green;
    }
    .right{
      width: 200px;
      background-color: blue;
    }

3.实现上述两个步骤后,中间内容沾满这个屏幕,这是因为中间内容设置在前面,并且将左右两边的内容挤下去了,
效果图如下:


1.png

这个时候,设置左边的{margin-left:-100%},“100%”是中间内容的宽度,右边设置{margin-right:-200px},“200px”是右边的宽度
此时效果图如下:


2.png

虽然左右两列的内容放到了合适的位置上,但是中间内容被覆盖了
4.针对上述问题,设置中间内容的padding {padding:0 200px},然后在设置相对定位和left .left{position:relative,left:-200px} .right{position:right,right:-200px}
最终效果图如下:


3.png

完整css代码如下:

.container{
      height: 200px;
      overflow: hidden;
      padding: 0 200px;
    }
    .container>div{
      float: left;
    }
    .middle{
      width: 100%;
      background-color: #ff5555;

    }
    .left{
      width: 200px;
      background-color: green;
      margin-left: -100%;
      position: relative;
      left: -200px;
    }
    .right{
      width: 200px;
      background-color: blue;
      margin-left:-200px ;
      position: relative;
      right: -200px;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容