圣杯布局与双飞翼布局 - 说中
程序员文章站
2022-04-10 11:17:44
...
圣杯布局和双飞翼布局的目的都是:左右两栏固定宽度,中间部分自适应;
圣杯布局
圣杯布局HTML:
我是主要我是左边我是右边
圣杯布局CSS:
* { margin: 0; padding: 0 } .main { background-color: yellow; height: 100px; float: left; width: 100%; } .left { background-color: red; width: 200px; height: 100px; float: left; margin-left: -100%; /*margin负边距*/ position: relative; /*相对自身偏移*/ left: -200px; } .right { background-color: blue; width: 200px; height: 100px; float: left; margin-left: -200px; /*margin负边距*/ position: relative; /*相对自身偏移*/ right: -200px; } .wrap { padding: 0 200px; /*父级设置padding*/ }
圣杯布局的优点:
使主要内容列先加载。
允许任何列是最高的。
没有额外的div。
需要的hack很少。
双飞翼布局
双飞翼HTML
双飞翼布局 我是主要我是左边我是右边
双飞翼CSS
.main-wrap { float: left; width: 100%; } .main { height: 100px; margin-left: 200px; /*利用左、右外边距定位*/ margin-right: 200px; background-color: yellow; } .left { background-color: red; width: 200px; height: 100px; float: left; margin-left: -100%; } .right { background-color: blue; width: 200px; height: 100px; float: left; margin-left: -200px; }
圣杯布局和双飞翼的比较:
1.两种布局都是把主要内容放在前面加载;
2.布局有相似之处,都使用了负外边距来布局;
3.不同:
圣杯布局是设置 父容器的padding值、相对定位来实现;
双飞翼布局是给main添加了一个div容器、设置main的左右外边距 来实现;