clearfix 清除浮動

2022-09-15 21:00:20 字數 1147 閱讀 9204

重構clearfix浮動

構成block formatting context的方法有下面幾種: 

float的值不為none。 

overflow的值不為visible。 

display的值為table-cell, table-caption, inline-block中的任何乙個。 

position的值不為relative和static。

很明顯,float和position不合適我們的需求。那只能從overflow或者display中選取乙個。 

因為是應用了.clearfix和.menu的選單極有可能是多級的,所以overflow: hidden或overflow: auto也不滿足需求 

(會把下拉的選單隱藏掉或者出滾動條),那麼只能從display下手。 

我們可以將.clearfix的display值設為table-cell, table-caption, inline-block中的任何乙個 

但是display: inline-block會產生多餘空白,所以也排除掉。 

剩下的只有table-cell, table-caption,為了保證相容可以用display: table來使.clearfix形成乙個block formatting context 

因為display: table會產生一些匿名盒子,這些匿名盒子的其中乙個(display值為table-cell)會形成block formatting context。 

這樣我們新的.clearfix就會閉合內部元素的浮動。 

後面又有人對此進行了改良: 

終極版一:

.clearfix:after

.clearfix /*ie/7/6*/

解釋下:content:」200b」;這個引數,unicode字元裡有乙個「零寬度空格」,即 u+200b,代替原來的「.」,可以縮減**量。而且不再使用visibility:hidden。

終極版二:

.clearfix:before,.clearfix:after

.clearfix:after

.clearfix{

*zoom:1;/*ie/7/6*/

清除浮動(clearfix)

web前端 2008 12 07 15 52 02 閱讀1089 字型大小 大 中小訂閱 在寫html 的時候,發現在firefox等符合w3c標準的瀏覽器中,如果有乙個div作為外部容器,內部的div如果設定了float樣式,則外部的容器div因為內部沒有clear,導致不能被撐開。看下面的例子 ...

clearfix清除浮動

工作中有用到這些東西,也只是看到別人這麼用就照用了,沒有理解。查到了他的乙個原理介紹,記錄下。首先,bootstrap裡面的寫法 clearfix clearfix before,clearfix after clearfix after 在乙個有float 屬性元素的外層增加乙個擁有clearfi...

clearfix清除浮動

終極版一 clearfix after clearfix ie 7 6 解釋下 content 200b 這個引數,unicode字元裡有乙個 零寬度空格 即 u 200b,代替原來的 可以縮減 量。而且不再使用visibility hidden。clearfix before,clearfix a...