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

首頁 > 開發 > CSS > 正文

常用的清除浮動的方法

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

本文所討論場景均由以下代碼表示。

HTML結構:

<div class="outer"> <div class="inner"></div></div>

CSS樣式:

.outer{ width:300px; border: 1px solid #ccc; background:red;}.inner{ width:100px; height:100px; background: blue; float:left;}

以上代碼顯示結果為

期待的顯示結果為

分析:由上圖看出,父元素為被撐開,高度為0,所以看不到其背景色。

(我理解的浮動:游泳池底有一個大小height可伸縮的.outer,里面放著一個.inner,有一天你對.inner設置了浮動,它就飄到游泳池的水面了(當然,它仍在.outer占據位置,這里僅僅用來理解父元素縮小的原因,不適用于浮動其他特性的理解),于是.outer就癟下去了,因為沒人撐開它了)

下面進入正題,討論以下常見的四種清除浮動的方法,下列均能得到期待的顯示結果。

(1)添加塊級新元素,并設置為clear:both

HTML結構:

<div class="outer"> <div class="inner"></div> <div class="new"></div></div>

CSS樣式:

.new{ clear:both;}

原理分析:clear:both屬性會防止指定了clear的元素兩邊存在浮動元素。由于.new左右均不能有浮動元素,所以它必須在.inner下面找到一個位置,所以.outer就被撐開了。注意:新添加的.new一定要為塊級元素,不然.new就不會換行在.inner下面找位置,而是在inner右邊找位置了。

優點:易理解,不容易受其他屬性設置影響

缺點:增加了dom節點數

(2)父元素定義 overflow: auto

CSS樣式:

.outer{ width:300px; border: 1px solid #ccc; background:red; overflow:auto;}

原理分析:應用了overflow:auto的元素,將會擴展它的大小以包圍它所包含的元素,而浮動元素仍在父元素中占據位置,因此,.outer會擴展其大小以包含.inner。

優點:代碼量少

缺點:易受影響。比如若父元素設置了高度,當子元素高度超過父元素時,會出現滾動條。

(3)對父元素添加偽類:after

.outer:after{ content:""; display: block; clear:both;}

原理分析:這種方法原理與第一種方法原理類似,都是通過添加一個元素來撐開父元素(content:""; 相當于一個空內聯元素,display: block;將此空元素設為以塊級元素顯示,clear:both; 防止其左右有浮動元素)。不同的是,偽類不占據dom元素節點,這也是這種方法相比方法一的優點。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东辽县| 竹溪县| 施甸县| 屏边| 东阿县| 辰溪县| 宣城市| 贵南县| 梨树县| 浦东新区| 孟州市| 鸡西市| 玛纳斯县| 斗六市| 德惠市| 洛川县| 岢岚县| 郑州市| 东安县| 灌云县| 瑞昌市| 句容市| 博客| 嘉义县| 襄樊市| 辉南县| 宜君县| 惠来县| 通许县| 丘北县| 沈丘县| 邯郸县| 黎平县| 扎赉特旗| 岑巩县| 宁明县| 汝南县| 抚顺县| 嘉荫县| 东城区| 香格里拉县|