双飞翼布局和圣杯布局其实是一样的,只不过在写法上有些不同,其布局都是左右固定宽度,中间宽度自适应。
圣杯布局
html结构
<div class="article">
<div class="center">center</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
css
先写出大概的样式
.article{
height: 300px;
padding: 0 200px;
}
.article .left{
width: 200px;
height: 100px;
background: blue;
float: left;
}
.article .right{
width: 200px;
background: #ccc;
height: 100px;
float: right;
}
.article .center{
background: yellow;
width: 100%;
height: 100%;
float: left;
}
现在的布局是这样的

在.left中添加
margin-left: -100%;
在.right中添加
margin-left: -200px;
布局就变成了

最后,在.left中添加
position: relative;
left: -100%;
在.right中添加
position: relative;
right: -200px;
大功告成

完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>圣杯布局</title>
<style>
.article{
height: 300px;
padding: 0 200px;
}
.article .left{
width: 200px;
height: 100px;
background: blue;
float: left;
position: relative;
left: -200px;
margin-left: -100%;
}
.article .right{
width: 200px;
background: #ccc;
height: 100px;
float: right;
position: relative;
right: -200px;
margin-left: -100%;
}
.article .center{
background: yellow;
width: 100%;
height: 100%;
float: left;
}
</style>
</head>
<body>
<div class="article">
<div class="center">center</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
</body>
</html>
双飞翼布局
双飞翼布局是在圣杯布局基础上改的
html结构改成了
<div class="article">
<div class="center"><div class="inner">center</div></div>
<div class="left">left</div>
<div class="right">right</div>
</div>
css结构改成了
.article{
height: 300px;
overflow: hidden;
}
.article .left{
width: 200px;
height: 100px;
background: blue;
float: left;
/*position: relative;
left: -200px;*/
margin-left: -100%;
}
.article .right{
width: 200px;
background: #ccc;
height: 100px;
float: left;
/*position: relative;
right: -200px;*/
margin-left: -200px;
}
.article .center{
background: yellow;
width: 100%;
height: 100%;
float: left;
}
.center .inner{
margin-left: 200px;
margin-right: 200px;
}
页面是这样的

因为高度不一样所以会显得很难看,要想不固定高度,加上以下代码
.center,.left,.right{
padding-bottom: 9999px;
margin-bottom: -9999px;
}
大功告成

完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>双飞翼布局</title>
<style>
.article{
height: 300px;
overflow: hidden;
}
.article .left{
width: 200px;
height: 100px;
background: blue;
float: left;
/*position: relative;
left: -200px;*/
margin-left: -100%;
}
.article .right{
width: 200px;
background: #ccc;
height: 100px;
float: left;
/*position: relative;
right: -200px;*/
margin-left: -200px;
}
.article .center{
background: yellow;
width: 100%;
height: 100%;
float: left;
}
.center .inner{
margin-left: 200px;
margin-right: 200px;
}
.center,.left,.right{
padding-bottom: 9999px;
margin-bottom: -9999px;
}
</style>
</head>
<body>
<div class="article">
<div class="center"><div class="inner">center</div></div>
<div class="left">left</div>
<div class="right">right</div>
</div>
</body>
</html>
网友评论