現在有兩個div,div身上沒有任何屬性,每個div中都有li,這些li都是浮動的。
清除浮動的方法1
給浮動的元素的祖先元素加高度: 如果乙個元素要浮動,那麼它的祖先元素一定要有高度。有高度的盒子才能關住浮動。
在以下例子中,div中有很多li,li在浮動,所以div必須要有高度。只要浮動在乙個有高度的盒子中,這個浮動就不會影響後面的浮動元素。
原本這些li會分為兩排,但是第二組中的第乙個li貼著第一組中的最後乙個li。因為div沒有高度,不能給自己浮動的元素乙個容器。浮動和浮動之間互相有影響。
所以增加乙個div的style:
div
清除浮動的方法2
clear: both
其實在網頁製作中,高度height很少出現,因為能被內容撐高。方法1在工作中用的很少。所以如果想不寫height也能清除浮動的話,則:
"header">
"box2">
第二個div寫乙個clear: both;屬性,指的是左浮動、右浮動都要清除。即清除別人對我的影響。
這種方法有乙個致命的問題:margin失效了。
清除浮動的方法3 隔牆法
"header">
"cl h10">
"box2">
即< div class=「cl h10」>< /div>這堵牆隔開了兩部分浮動,高度也可以靠自己的身高來撐。兩部分浮動互不影響。
隔牆法雖然好用,但是第乙個div還是沒有高度,如果現在讓第乙個div自動根據自己的兒子撐出高度,就要想一些「奇淫技巧」,如內牆法。 與隔牆法相比,不僅能隔開浮動,還能在第乙個div裡撐出高。
內牆法(即把< div class=「cl h10」>放入第乙個< div>中)
"header">
"cl h10">
"box2">
乙個奇淫技巧:
"header">
"cl">
乙個父親是不能被浮動的兒子撐出高的,脫標之後撐不出高。
這種時候產生一種繫結關係,改乙個p中的高度,就要改div的高度。
但是,只要清除div中的高,
並且
.cl
同時
"p1">
"p2">
"p3">
"cl">
就可以清除浮動。
當兩個p都浮動,所以div不能被撐出高,而在家裡面修一堵牆就能夠讓div被兒子撐出高了。奇淫公式:
"cl">
清除浮動的方法4:overflow. hidden;
表示溢位隱藏,即所有溢位邊框的內容都要隱藏掉。
本意是清除溢位到盒子外面的文字,但它可以是偏方。
div
.box
乙個父親不能被自己浮動的兒子撐出高度,但是如果這個父親加上了overflow: hidden; 那麼這個父親就能夠被浮動的兒子撐出高度了。並且overflow: hidden; 能夠讓margin生效.
總結:
浮動的元素,只能被有高度的盒子關住。也就是說,如果盒子內部有浮動,這個盒子有高,那麼浮動不會相互影響。但是在實際工作中並不會給所有的盒子加高度,因為麻煩,並且不能適應頁面的快速變化。所以我們要找到不給盒子加高度,但能夠清除浮動的方法。
上述知識點所遇到的瀏覽器相容問題:
一、 ie6 不支援小於12px的盒子,任何小於12px的盒子,在ie6中看著都大。
解決辦法:將盒子的字型大小設小,使其小於盒子的高,比如0px:
height: 4px;
_font-size:0px;
瀏覽器hack:使用瀏覽器提供的後門,針對某一種瀏覽器做相容。
ie6留了乙個後門,就是只要給css屬性之前加上下劃線,這個屬性就是ie6認識的專有屬性,如:_background-color: green;
解決微型盒子的正確寫法:
height:10px;
_font-size:0;
二、ie6不支援用overflow: hidden; 來清除浮動的
解決辦法:以毒攻毒,追加一條
_zoom:1;
完整寫法:
overflow:hidden;
_zoom:1;
_zoom1;能夠觸發瀏覽器haslayout機制,只有ie6有,我們只需要讓ie6好用。
overflow:hidden;的本意,就是溢位盒子的border的東西隱藏,這個功能是ie6相容的,不相容的是overflow:hidden;清除浮動的時候。
以上關於ie6的相容問題,都是通過多寫一條hack來解決的,這個稱為伴生屬性:
height:6px;
_font-size:0;
overflow:hidden;
_zoom:1;
CSS清除浮動 清除float浮動
css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...
CSS清除浮動 清除float浮動
css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...
CSS清除浮動 清除float浮動
一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了...