双飞翼布局相较于圣杯布局来说,两者都是采用了浮动元素,但在解决中间元素被挡住的问题时,圣杯布局采用的是为父元素设置padding-left和padding-right,为左边的元素设置position:relative和left属性解决;双飞翼布局则是额外使用一个浮动元素包裹中间元素,为中间元素设置margin-left和margin-right,再对左右元素设置负外边距来解决的。
那么,双飞翼布局为什么要增加一个额外的浮动元素包裹中间元素呢?
如果我们不使用额外的浮动元素,如下设置:
<style>
*{
margin: 0;
}
div{
height: 300px;
}
.center,.left,.right{
float: left;
}
.center{
width: 100%;
background-color: slateblue;
margin:0 150px 0 200px;
}
.left{
width: 200px;
background-color: red;
margin-left: -100%;
}
.right{
width: 150px;
background-color: green;
margin-left: -150px;
}
</style>
<body>
<div class="container">
<div class="center">center</div>