国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

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

2024-07-11 09:07:39
字體:
來源:轉載
供稿:網友

前言

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

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

1.絕對定位法

HTML代碼如下:

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

CSS代碼如下:

//簡單的進行CSS resetbody,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 resetbody,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 resetbody,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 resetbody,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%;}

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

總結

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


注:相關教程知識閱讀請移步到CSS教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青龙| 南城县| 瓦房店市| 陆川县| 平邑县| 颍上县| 邓州市| 浪卡子县| 宣武区| 凉城县| 永平县| 旌德县| 湘乡市| 汨罗市| 赤壁市| 衡东县| 陈巴尔虎旗| 全椒县| 湄潭县| 南雄市| 晋城| 长春市| 青神县| 开封县| 剑阁县| 乾安县| 泸溪县| 庆阳市| 西贡区| 双江| 萝北县| 兴国县| 大理市| 元谋县| 吴忠市| 昭觉县| 舞阳县| 竹山县| 大荔县| 房山区| 灵寿县|