CSS中的浮動(float)是一種常用的布局方式,可以讓元素靠左或靠右進行排列。但是,當浮動元素和其他元素重疊時,會出現一些意料之外的布局問題。為了解決這些問題,我們需要清除浮動。
一般來說,清除浮動有四種方法:
.clearfix:after { content: ""; display: block; clear: both; } .clearfix { *zoom: 1; }
第一種方法是使用類名為clearfix的偽元素,將clear屬性設為both,表示該元素下方不允許有浮動元素。同時,需要讓該元素生成一個塊級元素,可以使用display: block;
實現。
第二種方法是為父元素設置一個高度。然而,這種方法需要提前知道父元素的高度,不太方便。另外,如果父元素里面有動態加載的內容,高度就會發生變化,這種方法就不再適用。
.parent:after { clear: both; content: "."; display: block; height: 0; visibility: hidden; }
第三種方法是為父元素設置偽元素,把它的高度設置成0,并隱藏它。這樣,該偽元素就會占據父元素的高度,從而清除浮動。缺點是需要額外添加一個偽元素,不夠方便。
.containfix:after, .group:after { content: ""; display: table; clear: both; }
第四種方法是使用display:table;而使浮動元素關聯在一起的是普通塊級父元素display:block;。而display:table;和display:inline-table;這兩個屬性值在某種程度上等價于我們熟知的