如何將以下CSS變成更整齊合理的結構。如果仔細檢查以下代碼。你可以發現ul項實際上佔據了一行之前,而不是包含li項。那麼,我可以做些什麼來讓ul封裝所有四個li項目?如何讓ul在其內容框中包含li?
演示:http://fiddle.jshell.net/Gghz8/
效果:http://fiddle.jshell.net/Gghz8/show/
如何將以下CSS變成更整齊合理的結構。如果仔細檢查以下代碼。你可以發現ul項實際上佔據了一行之前,而不是包含li項。那麼,我可以做些什麼來讓ul封裝所有四個li項目?如何讓ul在其內容框中包含li?
演示:http://fiddle.jshell.net/Gghz8/
效果:http://fiddle.jshell.net/Gghz8/show/
在li上使用浮標時,它們被從文檔流中取出,這意味着UL不再知道它的孩子的大小,因此無法擴大它的大小以適合它的孩子。
在UL上浮動。 http://fiddle.jshell.net/Gghz8/2/
http://coding.smashingmagazine.com/2009/10/19/the-mystery-of-css-float-property/
當我開發我的網站,我漂浮幾乎一切。它只是有助於保持一致並避免像現在這樣的問題。
第1步 - 添加clearfix CSS
.cf:before,
.cf:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.cf:after {
clear: both;
}
/**
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.cf {
*zoom: 1;
}
第2步 - 添加類成HTML UL
<ul class="cf">
謝謝!這是解決問題的漂亮方法。但是會浮出文檔的正常流程? AFAIK only position:absolute會將它們帶出正常流程的文件 – Daniel
浮動將使UL脫離文檔的正常流程,但是如果您將所有內容都浮動起來,那麼所有內容都會知道它應該放在哪裏,孩子有多大是,因此它需要多大。請不要忘記標記正確的答案。 =) – seemly
根據http://css-tricks.com/all-about-floats/,「浮動元素仍然是網頁流的一部分,這與使用絕對定位的頁面元素明顯不同。絕對定位頁面元素從網頁流中移除「。那麼究竟改變了它的行爲? – Daniel