三栏布局(双飞翼布局和圣杯布局)

原文

博客原文

大纲

1、三栏布局的引入
2、基本思路及不同实现方式的区别
3、布局实例
3.1、圣杯布局
3.2、双飞翼布局

1、三栏布局的引入

关于三栏式布局,常规情况下,可以使用float实现,也可以使用relative来实现。
但是,如果要求左右两层定宽,中间层的宽度随浏览器窗口宽度变化而变化,这种情况下,就适合使用圣杯和双飞翼布局。通过对圣杯及双飞翼布局学习之后,我认为两种布局的主旨是在html结构中,使中间的主体层位于左右两层的前面。
圣杯:指的是一种常用的网页布局,他可以由现有的技术(无一没有缺点)来实现。所以找到一种最优的实现方法就好像寻找难以捉摸的圣杯一样。
双飞翼布局:是一种灵活的布局,始于淘宝UED。如果把三栏布局比作一只大鸟,可以把main看成是鸟的身体,sub和extra则是鸟的翅膀。这个布局的实现思路是,先把最重要的身体部分放好,然后再将翅膀移动到适当的地方。是对圣杯布局的一种改良。
其实,圣杯布局和双飞翼布局都是很早就出现了,只是国外大学生/淘宝UED将其归纳起来,系统化了。

三栏布局(双飞翼布局和圣杯布局)_第1张图片
任务效果图
2、基本思路及不同实现方式的区别

2.1、两种布局的基本构思为:首先让中间层100%宽度占满同一高度的空间,在左右两层被挤出中间层所在区域时, 使用margin-left的负值将左右两个层拉回与中间层同一高度的空间,接下来调整左右两层到指定位置, 最后使用中间层的margin或padding属性使中间层的内容躲出左右两层占住的显示区。

2.2、两种布局的主要区别在于:圣杯布局采用一个父层包含中间、左右三个子层,设置父层的padding值腾出左右两层的显示区, 并对左右两层使用relative和left、right值调整位置;双飞翼采用中间、左右三层并列,再在中间层里设置一个子层, 设置中间层子层的margin值腾出左右两层的显示区,对左右两层使用margin值即可调整位置;

3、布局实例
3.1、圣杯布局


    圣杯布局
    
    


header
main
left
footer
3.2、双飞翼布局


    三栏布局
    
    


header
min-inner
left
footer
参考网址

http://ife.baidu.com/note/detail/id/1025

你可能感兴趣的:(三栏布局(双飞翼布局和圣杯布局))