float

float:
float元素的父元素不能指定clear屬性
MacIE下若是對float的元素的父元素使用clear屬性,周圍的float元素佈局就會混亂。
這是MacIE的著名的bug,假若不知道就會走彎路。
float元素務必指定width屬性
不少瀏覽器在顯示未指定width的float元素時會有bug。
因此無論float元素的內容如何,必定要爲其指定width屬性。
另外指定元素時儘可能使用em而不是px作單位。
float元素不能指定margin和padding等屬性
IE在顯示指定了margin和padding的float元素時有bug。
所以不要對float元素指定margin和padding屬性(能夠在float元素內部嵌套一個div來設置margin和padding)。
也可使用hack方法爲IE指定特別的值。
float元素的寬度之和要小於100%
若是float元素的寬度之和正好是100%,某些古老的瀏覽器將不能正常顯示。所以請保證寬度之和小於99%。瀏覽器

float的div必定要閉合
例如:(其中floatA、floatB的屬性已經設置爲float:left;)
程序代碼
<#div id="floatA" ></#div>
<#div id="floatB" ></#div>
<#div id="NOTfloatC" ></#div>
這裏的NOTfloatC並不但願繼續平移,而是但願往下排。
這段代碼在IE中毫無問題,問題出在FF。
緣由是NOTfloatC並不是float標籤,必須將float標籤閉合。
在程序代碼
<#div class="floatB"></#div>
<#div class="NOTfloatC"></#div>
之間加上 程序代碼
<#div class="clear"></#div>
這個div必定要注意聲明位置,必定要放在最恰當的地方,
並且必須與兩個具備float屬性的div同級,之間不能存在嵌套關係,不然會產生異常。
而且將clear這種樣式定義爲爲以下便可:
程序代碼 .clear{ clear:both; }
此外,爲了讓高度能自動適應,要在wrapper裏面加上overflow:hidden;
當包含float的box的時候,高度自動適應在IE下無效,這時候應該觸發IE的layout私有屬性(萬惡的IE啊!)用zoom:1;能夠作到,這樣就達到了兼容。
例如某一個wrapper以下定義: 程序代碼 .colwrapper{ overflow:hidden; zoom:1; margin:5px auto; }app


清除浮動
在Firefox中,當子級都爲浮動時,那麼父級的高度就沒法徹底的包住整個子級,那麼這時用這個清除浮動的HACK來對父級 作一次定義,那麼就能夠解決這個問題。
select:after {
content:」.」;
display:block;
height:0;
clear:both;
visibility:hidden;
}佈局

相關文章
相關標籤/搜索