css 清除浮動

2021-08-31 01:12:06 字數 1220 閱讀 7460

在非ie瀏覽器中,當容器的高度為auto,且容器的內容中有浮動(float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響(甚至破壞)布局的現象。為了防止這種現象出現的處理即為清除浮動。

①使用帶clear屬性的空元素

在浮動元素後使用乙個空元素如

,並在css中賦予.clear屬性即可清理浮動。亦可使用

或來進行清理。

優點:簡單,**少,瀏覽器相容性好。

缺點:需要新增大量無語義的html元素,**不夠優雅,後期不容易維護。

②使用css的overflow屬性

給浮動元素的容器新增overflow:hidden;overflow:auto;可以清除浮動,另外在 ie6 中還需要觸發 haslayout ,例如為父元素設定容器寬高或設定 zoom:1。在新增overflow屬性後,浮動元素又回到了容器層,把容器高度撐起,達到了清理浮動的效果。

給浮動的元素的容器新增浮動

使其整體浮動,影響布局,不推薦使用。

使用鄰接元素處理

給浮動元素後面的元素新增clear屬性。

使用css的:after偽元素

給浮動元素的容器新增乙個clearfix的class,然後給這個class新增乙個:after偽元素實現元素末尾新增乙個看不見的塊元素(block element)清理浮動。

.news 

.news img

.news p

.clearfix:after

.clearfix

清除浮動主要有兩種方法:一是利用 clear 屬性,包括在浮動元素末尾新增乙個帶有 clear: both 屬性的空 div 來閉合元素,其實利用 :after 偽元素的方法也是在元素末尾新增乙個內容為乙個點並帶有 clear: both 屬性的元素實現的。

二是觸發浮動元素父元素的 bfc (block formatting contexts, 塊級格式化上下文),使到該父元素可以包含浮動元素,關於這一點。

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了...