圣杯布局及双飞翼布局主要用于解决左右两边盒子固定宽度。中间盒子宽度自适应的问题。
圣杯布局:
<!doctype html>
<html>
<head>
<title>圣杯布局</title>
<meta charset="utf-8">
<style>
body {
min- 800px;
margin: 0;
padding: 0;
}
.container {
padding: 0 300px 0 200px;
overflow: hidden;
}
.header {
100%;
height: 100px;
background-color: lightblue;
}
.footer {
100%;
height: 50px;
background-color: lightblue;
}
.middle,
.left,
.right {
position: relative;
}
.middle {
float: left;
100%;
height: 100px;
text-align: center;
background: lightcoral;
}
.left {
float: left;
200px;
margin-left: -100%;
left: -200px;
height: 100px;
background: lightgreen;
}
.right {
float: left;
300px;
height: 100px;
margin-left: -300px;
right: -300px;
background: lightseagreen;
}
</style>
</head>
<body>
<div class="header">header</div>
<div class="container">
<div class="middle">middle</div>
<div class="left">left</div>
<div class="right">right</div>
</div>
<div class="footer">footer</div>
</body>
</html>
双飞翼布局:
<!doctype html>
<html>
<head>
<title>双飞翼布局</title>
<meta charset="utf-8">
<style>
body {
min- 800px;
margin: 0;
padding: 0;
}
.container {
100%;
height: 100px;
background-color: red;
float: left;
}
.header {
100%;
height: 100px;
background-color: lightblue;
}
.footer {
100%;
height: 50px;
clear: both;
background-color: lightblue;
}
.middle {
margin: 0 300px 0 200px;
}
.left {
float: left;
200px;
margin-left: -100%;
height: 100px;
background: lightgreen;
}
.right {
float: left;
300px;
height: 100px;
margin-left: -300px;
background: lightseagreen;
}
</style>
</head>
<body>
<div class="header">header</div>
<div class="container">
<div class="middle">middle
<div>hahah</div>
</div>
</div>
<div class="left">left</div>
<div class="right">right</div>
<div class="footer">footer</div>
</body>
</html>
另外用弹性盒模型可以很容易的构造三列布局
<html>
<head>
<meta charset="utf-8">
<title>另外用弹性盒模型可以很容易的构造三列布局</title>
<style>
body{
margin: 0;
}
.container{
display: flex;
height: 100px;
}
.middle{
100%;
background: lightblue;
}
.left,.right{
background: lightcoral;
200px;
}
</style>
</head>
<body>
<div class="container">
<div class="left">left</div>
<div class="middle">middle</div>
<div class="right">right</div>
</div>
</body>
</html>