欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CSS實(shí)現(xiàn)三欄布局的四種方法示例

  發(fā)布時(shí)間:2017-01-24 17:06:22   作者:Damonare   我要評(píng)論
可能有人不理解三欄布局是什么,其實(shí)三欄布局頁(yè)面分為左中右三部分,然后對(duì)中間一部分做自適應(yīng)的一種布局方式,下面這篇文章就給大家詳細(xì)介紹了CSS實(shí)現(xiàn)三欄布局的四種方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。

前言

其實(shí)不管是三欄布局還是兩欄布局都是我們?cè)谄綍r(shí)項(xiàng)目里經(jīng)常使用的,也許你不知道什么事三欄布局什么是兩欄布局但實(shí)際已經(jīng)在用,或許你知道三欄布局的一種或兩種方法,但實(shí)際操作中也只會(huì)依賴那某一種方法,本文具體的介紹了三欄布局的四種方法,并介紹了它的使用場(chǎng)景。

所謂三欄布局就是指頁(yè)面分為左中右三部分然后對(duì)中間一部分做自適應(yīng)的一種布局方式。

1.絕對(duì)定位法

HTML代碼如下:

<div class="left">Left</div>
<div class="main">Main</div>
<div class="right">Right</div>

CSS代碼如下:

//簡(jiǎn)單的進(jìn)行CSS reset
body,html{
    height:100%;
    padding: 0px;
    margin:0px;
}
//左右絕對(duì)定位
.left,.right{
    position: absolute;
    top:0px;
    background: red;
    height:100%;
}
.left{
    left:0;
    width:100px;
}
.right{
    right:0px;
    width:200px;
}
//中間使用margin空出左右元素所占據(jù)的空間
.main{
    margin:0px 200px 0px 100px;
    height:100%;
    background: blue;
}

該方法有個(gè)明顯的缺點(diǎn),就是如果中間欄含有最小寬度限制,或是含有寬度的內(nèi)部元素,當(dāng)瀏覽器寬度小到一定程度,會(huì)發(fā)生層重疊的情況。

2. 圣杯布局

HTML代碼如下:

//注意元素次序
<div class="main">Main</div>
<div class="left">Left</div>
<div class="right">Right</div>

CSS代碼如下:

//習(xí)慣性的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;
}

相關(guān)解釋如下:

      (1)中間部分需要根據(jù)瀏覽器寬度的變化而變化,所以要用100%,這里設(shè)左中右向左浮動(dòng),因?yàn)橹虚g100%,左層和右層根本沒(méi)有位置上去

      (2)把左層margin負(fù)100后,發(fā)現(xiàn)left上去了,因?yàn)樨?fù)到出窗口沒(méi)位置了,只能往上挪

      (3)按第二步這個(gè)方法,可以得出它只要挪動(dòng)窗口寬度那么寬就能到最左邊了,利用負(fù)邊距,把左右欄定位

      (4)但由于左右欄遮擋住了中間部分,于是采用相對(duì)定位方法,各自相對(duì)于自己把自己挪出去,得到最終結(jié)果

3. 雙飛翼布局

HTML代碼如下:

<div class="main">
    <div class="inner">
        Main
    </div>
</div>
<div class="left">Left</div>
<div class="right">Right</div>

CSS代碼如下:

//CSS reset
body,html {
    height:100%;
    padding: 0;
    margin: 0
}
body {
    /*padding-left:100px;*/
    /*padding-right:200px;*/
}
.left {
    background: red;
    width: 100px;
    float: left;
    margin-left: -100%;
    height: 100%;
    /*position: relative;*/
    /*left:-100px;*/
}
.main {
    background: blue;
    width: 100%;
    float: left;
    height: 100%;
}
.right {
    background: red;
    width: 200px;
    float: left;
    margin-left: -200px;
    height: 100%;
    /*position:relative;*/
    /*right:-200px;*/
}
//新增inner元素
.inner {
    margin-left: 100px;
    margin-right: 200px;
}

圣杯布局實(shí)際看起來(lái)是復(fù)雜的后期維護(hù)性也不是很高,在淘寶UED的探討下,出來(lái)了一種新的布局方式就是雙飛翼布局,代碼如上。增加多一個(gè)div就可以不用相對(duì)布局了,只用到了浮動(dòng)和負(fù)邊距。和圣杯布局差異的地方已經(jīng)被注釋。

4. 浮動(dòng)

HTML代碼如下:

//注意元素次序
<div class="left">Left</div>
<div class="right">Right</div>
<div class="main">Main</div>

CSS代碼如下:

//CSS reset
body,html {
    height:100%;
    padding: 0;
    margin: 0
}
//左欄左浮動(dòng)
.left {
    background: red;
    width: 100px;
    float: left;
    height: 100%;
}
//中間自適應(yīng)
.main {
    background: blue;
    height: 100%;
    margin:0px 200px 0px 100px;
}
//右欄右浮動(dòng)
.right {
    background: red;
    width: 200px;
    float: right;
    height: 100%;
}

這種方式代碼足夠簡(jiǎn)潔與高效,也容易理解

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,四種方法其實(shí)只有圣杯布局和雙飛翼布局較難理解,但實(shí)際上理解了圣杯布局,雙飛翼布局自然就理解了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如有疑問(wèn)大家可以留言交流。

相關(guān)文章

  • CSS經(jīng)典三欄布局方案(6種方法)

    這篇文章主要介紹了CSS經(jīng)典三欄布局方案(6種方法)的相關(guān)資料,詳細(xì)的介紹了6種三欄布局的方法,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-12-01
  • 淺談CSS三欄布局的N種實(shí)現(xiàn)

    本篇文章主要介紹了淺談CSS三欄布局的N種實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-18
  • CSS三欄布局探討——中間固定寬度兩邊自適應(yīng)寬度

    下面和大家一起探討和學(xué)習(xí)了一種用div+css進(jìn)行的三列(三欄)布局,而且是中間固定左右兩邊自適應(yīng)寬度,聽(tīng)起來(lái)蠻有意思的。因?yàn)橐郧爸皇桥龅竭^(guò),左右兩列固定而中間自適應(yīng)
    2013-12-13
  • CSS Float布局過(guò)程與老生常談的三欄布局

    這篇文章就是總結(jié)一下怎樣使用CSS中的float屬性進(jìn)行布局,其實(shí)網(wǎng)上有很多討論這個(gè)話題的文章了,但我覺(jué)得都沒(méi)說(shuō)到點(diǎn)子上。那就來(lái)老生常談一次吧,CSS之Float布局
    2013-07-22
  • DIV+CSS 三欄布局實(shí)例代碼

    DIV+CSS 三欄布局實(shí)例代碼,主要是用了position:absolute
    2012-06-14
  • css實(shí)現(xiàn)三欄布局的幾種方法及優(yōu)缺點(diǎn)

    三欄布局在實(shí)際的開(kāi)發(fā)十分常見(jiàn),比如淘寶網(wǎng)的首頁(yè),即左邊商品導(dǎo)航和右邊導(dǎo)航固定寬度,中間的主要內(nèi)容隨瀏覽器寬度自適應(yīng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考
    2018-09-29

最新評(píng)論