清除浮動(dòng)是CSS中一個(gè)非常重要的概念。浮動(dòng)是CSS布局中常用的一種方式,可以讓元素脫離文檔流并進(jìn)行位置調(diào)整,但是在某些情況下會(huì)帶來(lái)很多問(wèn)題,比如副作用,布局錯(cuò)誤等。
為了解決浮動(dòng)帶來(lái)的問(wèn)題,我們需要使用CSS中提供的“清除浮動(dòng)”技術(shù)。通常情況下,我們可以通過(guò)以下的兩種方式來(lái)處理:
.clearfix::after { content: ""; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { display: inline-block; } /* IE6和IE7下需要加上zoom:1 */ .clearfix { zoom: 1; }
這種方法的原理是在浮動(dòng)元素上增加一個(gè)新的元素,并通過(guò)設(shè)置clear屬性進(jìn)行浮動(dòng)清除。這個(gè)新的元素可以是任意的元素,但是通常使用偽元素來(lái)實(shí)現(xiàn)。在清除浮動(dòng)之后,我們需要給浮動(dòng)元素的父元素(也就是包含浮動(dòng)元素的元素)增加一個(gè)clearfix類,來(lái)保證清除浮動(dòng)的正確執(zhí)行。另外,在某些情況下,需要為IE6和IE7特別準(zhǔn)備zoom:1屬性。
.clearfix::before, .clearfix::after { content: ""; display: table; } .clearfix::after { clear: both; } .clearfix { *zoom: 1; }
除了前一種方法之外,我們還可以使用clear屬性的另一種方式。這種方式直接在浮動(dòng)元素的父元素上添加一個(gè)::after偽元素,并通過(guò)設(shè)置display屬性使其表現(xiàn)為一個(gè)塊級(jí)元素,然后設(shè)置clear屬性實(shí)現(xiàn)浮動(dòng)清除。同樣的,我們需要為IE6和IE7添加zoom:1屬性。
以上是兩種常見(jiàn)的清除浮動(dòng)的方法,當(dāng)然還有其他的實(shí)現(xiàn)方式,比如在浮動(dòng)元素的父元素上設(shè)置overflow:hidden或者overflow:auto屬性等,這些方式在實(shí)現(xiàn)上可能更加簡(jiǎn)單,但是需要考慮兼容性問(wèn)題。