前段時間寫過一篇CSS基礎知識之position,當時對float的理解不太準確,被慕課網多名讀者指出(原文已修正,如有誤導實在抱歉)。現對float進行更深入的學習,在此把學習心得分享給大家。
浮動的基礎知識
浮動有4個屬性:left(左浮動)、right(右浮動)、none(不浮動)、inherit(繼承)。
浮動元素的包含塊是其最近的塊級祖先元素。
浮動元素會左偏移(或右偏移),直到它的外邊界接觸到『包含塊的內邊界』或『另一個浮動元素的外邊界』。
浮動元素脫離了標準文檔流,文字和行級元素會環繞該元素,塊級元素則不受影響。
浮動一個非替換元素,必須為該元素聲明一個width,否則元素的寬度趨于0。
浮動元素的margin(外邊距)不會與其他元素的margin合并。

浮動的深入研究
浮動元素的頂邊不可以高于包含塊中先前產生的塊級元素或行級元素的頂。
浮動元素之間不可重疊,如果水平方向沒有足夠的空間放置浮動元素,它將向下移動,直到有足夠的空間或沒有更多的浮動元素為止。
浮動元素不能溢出包含塊的左、右、上邊界,僅可溢出下邊界。(浮動元素溢出下邊界時,部分瀏覽器會增加包含塊的高度,使浮動元素能夠包含在包含塊中,出現大片空白,導致瀏覽器兼容性問題。)
浮動元素設置負外邊距時,雖然浮動元素看起來溢出了包含塊,但實際并沒有違反上述規則。
特殊情況,浮動元素比包含塊更寬時,浮動元素會在偏移的反方向溢出。
浮動的負作用
背景不能顯示
邊框不能撐開
margin padding 不能正確顯示
清除浮動的方法
新聞熱點
疑難解答