圣杯布局是指两边定宽,中间自适应的三栏布局。
圣杯布局和双飞翼布局解决问题的方案在前一半是相同的,也就是三栏全部float浮动,但左右两栏加上负margin让其跟中间栏div并排,以形成三栏布局。
主栏目放在最前优先渲染,设置宽度100%,左浮动。
主栏目中再加一层div,设置<code>margin-left , margin-right</code>用于放置侧边栏。
container:after清除浮动。
左右两栏设置浮动,宽度。左侧边栏设置<code>margin-left:-100%</code>跑到左上角。
右侧栏设置<code>margin-left:-200px</code>(自身宽度),飘到右上角。
不同之处:
圣杯布局,为了中间div内容不被遮挡,将中间div设置了左右padding-left和padding-right后,将左右两个div用相对布局position: relative并分别配合right和left属性,以便左右两栏div移动后不遮挡中间div。
双飞翼布局,为了中间div内容不被遮挡,直接在中间div内部创建子div用于放置内容,在该子div里用margin-left和margin-right为左右两栏div留出位置。
双飞翼布局比圣杯布局多创建了一个div,但不用相对布局了。