国产麻豆一区二区精彩视频-国产麻豆一区精品视频-国产麻豆一区在线-国产毛a片久久久久无码-国产毛片av一区二区三区网站-国产毛片精品av一区二区

CSS實現三欄布局的四種方法示例

2017/2/13 8:25:24   閱讀:1813    發布者:1813

前言

其實不管是三欄布局還是兩欄布局都是我們在平時項目里經常使用的,
也許你不知道什么事三欄布局什么是兩欄布局但實際已經在用,
或許你知道三欄布局的一種或兩種方法,但實際操作中也只會
依賴那某一種方法,本文具體的介紹了三欄布局的四種方法,并介紹了它的使用場景。

所謂三欄布局就是指頁面分為左中右三部分然后對中間一部分做自適應的一種布局方式。

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上去了,因為負到出窗口沒位置了,只能往上挪

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

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

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; 
}

圣杯布局實際看起來是復雜的后期維護性也不是很高,在淘寶UED的探討下,
出來了一種新的布局方式就是雙飛翼布局,代碼如上。增加多一個div就可以
不用相對布局了,只用到了浮動和負邊距。和圣杯布局差異的地方已經被注釋。

4. 浮動

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 
} 
//左欄左浮動 
.left { 
    background: red; 
    width: 100px; 
    float: left; 
    height: 100%; 
} 
//中間自適應 
.main { 
    background: blue; 
    height: 100%; 
    margin:0px 200px 0px 100px; 
} 
//右欄右浮動 
.right { 
    background: red; 
    width: 200px; 
    float: right; 
    height: 100%; 
}

這種方式代碼足夠簡潔與高效,也容易理解

總結

以上就是這篇文章的全部內容了,四種方法其實只有圣杯布局和雙飛翼布局較難理解,
但實際上理解了圣杯布局,雙飛翼布局自然就理解了,希望本文的內容對大
家的學習或者工作能帶來一定的幫助,如有疑問大家可以多多交流。

主站蜘蛛池模板: 天天色小说 | 久久精品道一区二区三区 | 日本高清视频免费观看 | 四虎影视永久地址www成人 | 五月天激激婷婷大综合蜜芽 | 国产手机免费视频 | 电影内射视频免费观看 | 久久成人国产精品 | 亚洲av无码男人的天堂在线 | 亚洲精品天天影视综合网 | 亚洲精品久 | 婷婷久久综合九色综合绿巨人 | 亚洲女女女同性video | 97热久久免费频精品99国产成人 | 欧美一码二码三码无码 | 国产精品久久久久久久久久红粉 | 国产大臿蕉香蕉大视频 | 亚洲国产欧美在线观看 | 亚洲精品久久久久久下一站 | 日本大片免a费观看视频 | 天天影视插插插 | 久久久久久久性潮 | 人人澡人人妻人人爽人人蜜桃 | 狠狠色噜噜狠狠狠狠69 | 久久亚洲综合网 | 狠狠操狠狠色 | 国产91色在线 | 亚洲 | 日本人妻A片成人免费看 | 丰满人妻熟妇乱又伦精品软件 | 午夜色福利| 四虎国产精品永久地址99 | 午夜骚片 | 成人自拍在线 | 精品国产av无码一区二区三区 | 欧美日韩亚洲一区二区 | 亚洲免费色视频 | 欧美成人久久一级c片免费 欧美成人剧场 | 精品久久久爽爽久久久AV | 四虎国产一区二区三区 | 六月丁香六月婷婷 | www国产成人免费观看视频 |