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

首頁 > 開發 > CSS > 正文

css中間自適應布局的5種解法詳解

2024-07-11 08:33:21
字體:
來源:轉載
供稿:網友

前言

在做頁面時,我們往往會碰到頁面布局相關的內容,面試時也經常會被問到,那么今天我就來總結一下關于頁面布局的內容。

問題:如何實現三欄布局(高度固定,左中右的結構)

假設高度已知,請寫出三欄布局,其中左右寬度均為300px,中間自適應。

看了上面的題目,有經驗的人也許會覺得很簡單,仔細想想,如果我們來寫,能寫出幾種方案呢?一般都會想到兩種吧,float和position定位,其實除了這兩種外,還有3種可以寫,下面我就來一一介紹一下:

方案一(float浮動)


<section class='layout float'>
<style>
.layout.float .left-right-center{
height: 100px;
}
.layout.float .left{
float: left;
width: 300px;
background-color: red;
}

.layout.float .right{
float: right;
width: 300px;
background-color: blue;
}

.layout.float .center{
background-color: yellow;
}
</style>
<article class="left-right-center">
<div class="left"></div>
<div class="right"></div>
<div class="center">我是中間的自適應元素--浮動</div>
</article>
</section>

原理:左右兩個div由于浮動脫離了文檔流,center就會上移,造成三欄布局的效果(前提是高度相同)
優點:兼容性高
缺點:需要清除浮動來防止影響其他元素
如果高度不固定,中間的內容會被撐開,左右兩邊不會一起撐開

方案二(絕對定位)


<section class="layout absolute">
<style>
.layout.absolute .left-center-right div{
position: absolute;
height: 100px;
}

.layout.absolute .left{
left: 0;
width: 300px;
background-color: red;
}

.layout.absolute .center{
left: 300px;
right: 300px;
background-color: yellow;
}

.layout.absolute .right{
right: 0;
width: 300px;
background-color: blue;
}
</style>
<article class="left-center-right">
<div class="left"></div>
<div class="center">
我是中間的自適應元素--絕對定位
</div>
<div class="right"></div>
</article>
</section>

原理:利用絕對定位以及寬度,將左右兩邊的div固定住,中間div的寬度就會有自適應的效果
優點:快捷
缺點:如果父元素脫離了文檔流,子元素一定會脫離文檔流,運用的場景不多
如果中間元素的高度增加,兩邊元素的高度不會增加,所以只有中間的div會撐開

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荃湾区| 奈曼旗| 上杭县| 榆中县| 安西县| 新龙县| 利辛县| 桐柏县| 子洲县| 西乌珠穆沁旗| 平凉市| 永川市| 德州市| 西城区| 内乡县| 海口市| 扬中市| 龙岩市| 盐城市| 唐山市| 惠水县| 常州市| 咸阳市| 当涂县| 永昌县| 云浮市| 定结县| 根河市| 乐亭县| 故城县| 双辽市| 乐清市| 天全县| 通海县| 定边县| 明光市| 淮南市| 九江县| 静安区| 孟州市| 甘谷县|