拋一塊問題磚(display: block)先看現象:
在非i瀏覽器(如firefox)下,當容器的高度為auto,且容器的內容中有浮動(float為left或right)的元素,在這種情況下,容器的高度不能自動伸長以適應內容的高度,使得內容溢位到容器外面而影響(甚至破壞)布局的現象。這個現象叫浮動溢位,為了防止這個現象的出現而進行的css處理,就叫css清除浮動。
引用w3c的例子,news容器沒有包圍浮動的元素。
css code複製內容到剪貼簿
xml/html code複製內容到剪貼簿
清除浮動:
1,在浮動元素後面增加
標籤;xml/html code複製內容到剪貼簿
2,在浮動元素後面增加乙個清除浮動層;
xml/html code複製內容到剪貼簿
3,給浮動元素新增overflow:auto樣式;
4,為最後浮動元素設定如下樣式:
css code複製內容到剪貼簿
其原理是,在「高階」瀏覽器中使用 :after 偽類在浮動塊後面加上乙個非 display:none 的不可見塊狀內容來,並給它設定 clear:both 來清理浮動。在 ie6 和 7 中給浮動塊新增 haslayout 來讓浮動塊撐高並正常影響文件流。
5,另一種簡潔的辦法:
css code複製內容到剪貼簿
原理還是一樣的。使用 :after 偽類來提供浮動塊後的 clear:both。不同的是,隱藏這個空白使用的是 display: table。而不是設定 visibility:hidden;height:0;font-size:0; 這樣的 hack。
值得注意的是這裡中的 :before 偽類。其實他是來用處理 top-margin 邊摺疊的,跟清理浮動沒有多大的關係。但因為浮動會建立 block formatting context,這樣浮動元素上的另而一元素上如果剛好有 margin-bottom 而這個浮動元素剛好有margin-top 的話,應該讓他們不摺疊(雖然這種情況並不常見)。
本文標題: css浮動所差生的內容溢位問題及清除浮動的方法小結
本文位址: /web/css/84491.html
CSS解決文字溢位問題
有時候乙個文字框中的文字太多,但文字框有設定的寬度,這是會出現文字溢位的現象,例如乙個li中文字數量較多,但li有自己的寬度,就會導致下面的情景 文字內容文字內容文字內容文字內容文字內容文文字內容文字內容 為了解決上面的問題,我們可以在css中設定如下 white space nowrap 強制性的...
關於char的溢位問題
現在看下面的問題 int main 結果為什麼是 127?int main 結果為什麼是127?解析 首先要知道三點 第一點 大家知道char型別的取值範圍是 128到127,這是char型別的儲存空間限制的。char型別的變數佔1個位元組,最高位為符號位,0代表正數,1代表負數。這樣char型別最...
Python整數的溢位問題
只是牽線的理解,後續慢慢結束在繼續總結深層原因 在數學中整數時可以無限大的,但是在計算機中整數不可以無限大,在python2中用int表示整數,他的大小一般和你計算機的效能相關,用long表示長整數,一般代表無限大,後邊會有l來表示 當參與運算的數字或者運算結果超過計算機中最大的數,就會出現 整數溢...