清除浮動:
在非ie瀏覽器(如firefox)下,當容器的高度為auto,且容器的內容中有浮動(float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響(甚至破壞)布局的現象。這個現象叫浮動溢位,為了防止這個現象的出現而進行的css處理,就叫css清除浮動。
clear語法:clear : none | left | right | both取值:none : 預設值。允許兩邊都可以有浮動物件left : 不允許左邊有浮動物件right : 不允許右邊有浮動物件both : 不允許有浮動物件但是需要注意的是:clear屬性只會對自身起作用,而不會影響其他元素。如果乙個元素的右側有一浮動物件,而這個元素設定了不允許右邊有浮動物件,即clear:right,則這個元素會自動下移一格,達到本元素右邊沒有浮動物件的目的。
方式1(推薦):
.clearfix:after
.clearfix <----這是針對於ie6的,因為ie6不支援:after偽類,這個神奇的zoom:1讓ie6的元素可以清除浮動來包裹內部元素。
整段**就相當於在浮動元素後面跟了個寬高為0的空div,然後設定它clear:both來達到清除浮動的效果。 之所以用它,是因為,你不必在html檔案中寫入大量無意義的空標籤,又能清除浮動
方式2:
overflow:hidden;
overflow:hidden的含義是超出的部分要裁切隱藏,float的元素雖然不在普通流中,但是他是浮動在普通流之上的,可以把普通流元素+浮動元素想象成乙個立方體。如果沒有明確設定包含容器高度的情況下,它要計算內容的全部高度才能確定在什麼位置hidden,這樣浮動元素的高度就要被計算進去。這樣包含容器就會被撐開,清除浮動。
lang
="en"
>
>
charset
="utf-8"
>
>
titletitle
>
>
.div1
.div2
.div3
.outer
.clearfloat:after
style
>
head
>
>
class
="outer clearfloat"
>
class
="div1"
>
hello world1div
>
class
="div2"
>
hello world2div
>
class
="div3"
>
hello world3div
>
div>
body
>
html
>
CSS之清除浮動
標籤可以是div br hr 在浮動元素後使用乙個空元素如 並在css中賦予.clear屬性即可清理浮動。亦可使用 或來進行清理。優點 簡單,少,瀏覽器相容性好。缺點 需要新增大量無語義的html元素,不夠優雅,後期不容易維護。在浮動元素下加 clear,但是在ie6下,塊元素有最小高度,即當hei...
CSS之清除浮動
一 清除浮動的目的。1 當乙個父元素的高度不寫或為auto時,而且這個父元素內又有浮動的子元素,那麼這時候該父元素的高度將不會自動適應子元素的高度,也可以說高度是0px 有如下 123123 此 父元素高度不設定,而且裡面又有左浮動高度為300px的子元素。實際顯示效果為 可以看到,父div僅僅顯示...
css之清除浮動
這幾天先整理下清除浮動的方法 產生問題的原因 在乙個容器中,有多個浮動的子元素,會造成顯示結果意想不到的問題。在css規範中,浮動定位不屬於正常的文件流,而是獨立定位的。浮動元素在文件流空出的位置,由後續的 非浮動 元素填充上去 塊級元素直接填充上去,若跟浮動元素的範圍發生重疊,浮動元素覆蓋塊級元素...