2012-05-22 75 views

回答

231

這樣寫:

.wrapper:after { 
    content: ''; 
    display: block; 
    clear: both; 
} 

入住這http://jsfiddle.net/EyNnk/1/

+0

這是怎麼做到的。但請注意我關於語義的答案中的一點。 – Alex

+2

只是一個小信息:使用雙冒號的':: after'是針對僞元素的推薦方式。 – Dennis98

+7

支持雙冒號(::)的每個瀏覽器CSS3語法也僅支持(:)語法,但IE 8僅支持單冒號,因此目前建議僅使用單冒號以獲得最佳瀏覽器支持。 ::是較新的格式,用於區分僞內容和僞選擇器。如果您不需要IE 8支持,請隨意使用雙冒號。 https://css-tricks.com/almanac/selectors/a/after-and-before/ – retroriff

0

文本 'dasda' 永遠不會是一個標籤內,對不對?從語義和有效的HTML爲要,只需添加明確的階級到:

http://jsfiddle.net/EyNnk/2/

+1

它根本不是語義。 1)如果我的孩子有漂浮在其上的例子,如果我想給背景加入UL,那麼我們總是清楚父元素,因爲UL不清晰,所以它不覆蓋LI's 2)我有個問題爲什麼你給了清楚在P之前的一個單獨的DIV中的類。如果你給P只有它也可以工作 – sandeep

6

不,你不這足以做這樣的事情:

<ul class="clearfix"> 
    <li>one</li> 
    <li>two></li> 
</ul> 

而且下面的CSS:

ul li {float: left;} 


.clearfix:after { 
    content: "."; 
    display: block; 
    clear: both; 
    visibility: hidden; 
    line-height: 0; 
    height: 0; 
} 

.clearfix { 
    display: inline-block; 
} 

html[xmlns] .clearfix { 
    display: block; 
} 

* html .clearfix { 
    height: 1%; 
} 
3

這也能發揮作用:

.clearfix:before, 
.clearfix:after { 
    content: ""; 
    display: table; 
} 

.clearfix:after { 
    clear: both; 
} 

/* IE 6 & 7 */ 
.clearfix { 
    zoom: 1; 
} 

給類clearfix元素,例如您的ul元素。

來源herehere

+0

顯示:表可以增加額外的間距;我使用display:block代替 –