1.兩邊寬度固定,中間寬度自適應
聖盃佈局:
具體實現:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>聖盃佈局</title>
<style type='text/css'>
body {
min-width: 500px;//設置最小寬度=>>200+100+200=500(position:relative+200)
margin: 0;
}
header{
width: 100%;
background-color: #dd4f43;
text-align: center;
}
.container{
padding-left: 200px;
padding-right: 100px;
background-color: yellow;
}
.container .column{
float: left;/*三列設置浮動 footer需要清除浮動,否則就跑到一行去了*/
text-align: center;
}
#center{
width: 100%;/*center設置100%,那麼left和right就會擠到第二行*/
background-color: #4b8bf4;
}
#left{
width: 200px;
background-color: #ffcd42;
margin-left: -100%;
position: relative;
right: 200px; /*在右邊插入200px*/
}
#right{
width: 100px;
margin-right: -100px;
background-color: #c900c9;
}
footer{
clear: both;/*清除浮動*/
width: 100%;
text-align: center;
background-color: #17a05d;
}
</style>
</head>
<body>
<header>header</header>
<div class="container">
<div id="center" class="column">center</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
</div>
<footer>footer</footer>
</body>
</html>
雙飛翼佈局的DOM結構與聖盃佈局的區別是用container
僅包裹住center
,另外將.column
類從center
移至container
上。
雙飛翼佈局 實現:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>聖盃佈局</title>
<style type='text/css'>
body{
min-width: 600px;
/*計算最小頁面寬度:由於雙飛翼佈局沒有用到position:relative進行定位,所以最小頁面寬度應該爲200+150=350px。但是當頁面寬度縮小到350px附近時,會擠佔中間欄的寬度,因此在設置最小頁面寬度時,應該適當增加一些寬度以供中間欄使用,例如300px 100+200+300=600*/
}
#container{
width: 100%
}
.column{
float: left;
}
header{
background-color: #f94;
}
#center{
background-color: red;
margin-left: 200px;
margin-right: 100px;
}
#left{
width: 200px;
margin-left: -100%;
background-color: pink;
}
#right{
width: 100px;
margin-left: -100px;
background-color: gray;
}
footer{
background-color: #f94;
clear: both;
}
</style>
</head>
<body>
<header>header</header>
<div id="container" class="column">
<div id="center">center</div>
</div>
<div id="left" class="column">left</div>
<div id="right" class="column">right</div>
<footer>footer</footer>
</body>
</html>