CSS 浮動的清除

2021-08-08 17:58:36 字數 2896 閱讀 1151

現在有兩個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浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不能撐開,這樣浮動就產生了...