圣杯布局
- 三个部分必须都设置向左浮动。
- 先写 middle,让页面先渲染中间的重要区域。
- content 设置左右内边距是为了给 left 和 right 留出空间。
- middle 设置
width: 100%
,而 left 和 right 的width
属性值分别为 content 的左右内边距。 - 为 left 和 right 分别设置
margin-left
,由于 middle 也是浮动元素,所以这样会使 left 和 right 向上层浮动。 - 通过
position: relative
,分别将 left 和 right 向左右两侧拉扯。
由于 left 设置了margin-left: -100%
,当 content 内容区的宽度小于 left 的宽度时,此时 left 左移的距离小于 left 自身的宽度,导致 left 并不会向上移动到与 middle 同层。简言之,布局乱了。
1 | <div class="content"> |
双飞翼布局
圣杯布局的升级版,修改 DOM 结构,然后使用margin
代替padding
。
1 | <div class="content"> |