簡單地說,浮動是因為使用了float:left或float:right或兩者都有而產生的浮動,導致樣式缺失或者不正確顯示等問題;
1、背景不能顯示
由於浮動產生,如果對父級設定了(css background背景)css背景顏色或css背景,而父級不能被撐開,所以導致css背景不能顯示。
2、邊框不能撐開
如果父級設定了css邊框屬性(css border),由於子級裡使用了float屬性,產生浮動,父級不能被撐開,導致邊框不能隨內容而被撐開。
3、margin padding設定值不能正確顯示
由於浮動導致父級子級之間設定了css padding、css margin屬性的值不能正確表達。特別是上下邊的padding和margin不能正確顯示。
首先列舉乙個小案例:
123子元素都設定了float屬性,父元素div高度不能撐開,樣式margin屬性顯示有問題;
方法一:新增新的元素 、應用 clear:both;
在浮動的盒子之下再放乙個標籤,在這個標籤中使用clear:both,來清除浮動對頁面的影響.
注意:一般情況下不會使用這一種方式來清除浮動。因為這種清除浮動的方式會增加頁面的標籤,造成結構的混亂.
.clear
123
方法二:父級div定義 overflow: auto(注意:是父級div也就是這裡的 div.outer)
原理:使用overflow屬性來清除浮動有一點需要注意,overflow屬性共有三個屬性值:hidden,auto,visible。我們可以使用hiddent和auto值來清除浮動,但切記不能使用visible值。
.over-flow/*zoom1; 是在處理相容性問題*/
123
方法三: 使用偽元素來清除浮動(:after,注意:作用於浮動元素的父親)
主要推薦使用這種方法清除浮動
.clearfix:after.clearfix
123
方法四:使用雙偽元素清除浮動
.clearfix:before,.clearfix:after.clearfix
清除浮動方法及清除浮動原因
div1 盒子裡有left和right 兩個子盒子,div1 有兄弟盒子div2,給left right 盒子新增浮動前效果圖 浮動的屬性雖然方便使用,但是在使用這種屬性時,也存在著一種弊端,那就是當子元素設定了float屬性之後,且父元素的高度沒有設定,而是由子元素支撐起來,則會導致父元素的高度塌...
css解決浮動,清除浮動方法
2.clear both清除浮動 3.父級div定義 overflow hidden 總結假設了有三個盒子物件,乙個父級裡包含了兩個子級,子級乙個使用了float left屬性,另外乙個子級使用float right屬性。同時設定div css border,父級css邊框顏色為紅色,兩個子級邊框顏...
浮動及清除浮動的方法
浮動元素脫離文件流,不佔據空間。浮動元素直到它的外邊緣碰到包含框或另乙個浮動框的邊框為止。1 使用空標籤清除浮動 在所有浮動標籤後面新增乙個空標籤定義cssclear both.弊端就是增加了無意義標籤,影響文件結構美觀性。1 div style clear both div 2 使用overflo...