圣杯布局

圣杯布局:是在三列布局左右定宽中间自适应的基础上,要求中间部分首先渲染,是通过父元素的左右边距来进行定位的

首先要理解

  • margin-top、margin-left设为负值的时候,会把元素上移、左移,文档流中的位置也会发生变化
  • position:relative的元素设置top、left后元素还占据原来位置,文档流中的位置不会发生变化

思路

//html
<div id='content'>
    <div id='middle'>我在中间</div>
    <div id='left'>我在左边</div>
    <div id='right'>我在右边</div>
</div>
  • 将三者都设置
float:left
  • 将middle的宽度设置
width:100%
  • 给left设置为margin为负值,左边部分会移到middle的前面,但是会覆盖一部分
margin-left:-100%;
  • 给content设置padding,给左右留出空白
padding:0 100px;
  • 给left设置相对定位,向左边移动100px,填充左边空白
left:-100px;
position:relative;
  • 给right设置margin,让右边部分移到middle后面
margin-left:-100px;
  • 给right设置相对定位,向右边移动100px
left:100px;
position:relative;

以上两步也可简化为

margin-right: -100%;

demo地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,841评论 1 92
  • 在CSS的经典布局中,圣杯布局和双飞翼布局是十分典型的代表,在众多前端面试中也常常会遇到。今天我们就一起来聊聊“圣...
    shawnJ阅读 3,396评论 0 0
  • 前言 所谓经典,说白了就是古老的东西,但是又是很有用的东西。大多数前端,还有本菜,都或多或少了解的圣杯布局和双飞翼...
    kk少年阅读 1,237评论 0 8
  • 实现圣杯布局和双飞翼布局,“负边距”是必不可少的。 了解圣杯布局和双飞翼布局之前,我们先来了解下负边距。一、定义:...
    betterwlf阅读 797评论 0 11
  • 其实圣杯布局和双飞翼布局实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局。它们实...
    McRay阅读 252评论 0 1