CSS浮動所差生的內容溢位問題及清除浮動的方法小結

2022-09-24 11:21:10 字數 1051 閱讀 3386

拋一塊問題磚(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來表示 當參與運算的數字或者運算結果超過計算機中最大的數,就會出現 整數溢...