前言
其實不管是三欄布局還是兩欄布局都是我們在平時項目里經常使用的,也許你不知道什么事三欄布局什么是兩欄布局但實際已經在用,或許你知道三欄布局的一種或兩種方法,但實際操作中也只會依賴那某一種方法,本文具體的介紹了三欄布局的四種方法,并介紹了它的使用場景。
所謂三欄布局就是指頁面分為左中右三部分然后對中間一部分做自適應的一種布局方式。
1.絕對定位法
HTML代碼如下:
<div class="left">Left</div>
<div class="main">Main</div>
<div class="right">Right</div>CSS代碼如下:
//簡單的進行CSS reset
body,html{
height:100%;
padding: 0px;
margin:0px;
}
//左右絕對定位
.left,.right{
position: absolute;
top:0px;
background: red;
height:100%;
}
.left{
left:0;
width:100px;
}
.right{
right:0px;
width:200px;
}
//中間使用margin空出左右元素所占據的空間
.main{
margin:0px 200px 0px 100px;
height:100%;
background: blue;
}該方法有個明顯的缺點,就是如果中間欄含有最小寬度限制,或是含有寬度的內部元素,當瀏覽器寬度小到一定程度,會發生層重疊的情況。
2. 圣杯布局
HTML代碼如下:
//注意元素次序
<div class="main">Main</div>
<div class="left">Left</div>
<div class="right">Right</div>CSS代碼如下:
//習慣性的CSS reset
body,html{
height:100%;
padding: 0;
margin: 0
}
//父元素body空出左右欄位
body {
padding-left: 100px;
padding-right: 200px;
}
//左邊元素更改
.left {
background: red;
width: 100px;
float: left;
margin-left: -100%;
position: relative;
left: -100px;
height: 100%;
}
//中間部分
.main {
background: blue;
width: 100%;
height: 100%;
float: left;
}
//右邊元素定義
.right {
background: red;
width: 200px;
height: 100%;
float: left;
margin-left: -200px;
position: relative;
right: -200px;
}相關解釋如下:
(1)中間部分需要根據瀏覽器寬度的變化而變化,所以要用100%,這里設左中右向左浮動,因為中間100%,左層和右層根本沒有位置上去
(2)把左層margin負100后,發現left上去了,因為負到出窗口沒位置了,只能往上挪
|
新聞熱點
疑難解答