2013-10-20 161 views
1

任何人都可以解釋我overflow:hidden實際上做了什麼?我無法理解這個概念,儘管閱讀了許多CSS教程。我右邊和左邊有兩個漂浮物,爲什麼我要將overflow:hidden應用到我的標題?溢出:隱藏在CSS

我對這個屬性感到困惑。

+0

因爲瀏覽器的陌生感,容器元素的高度將不會是正確的,並不會達到,直到最後一個浮動元素的結尾,所以爲了「欺騙」的容器元素爲了封裝所有浮動的孩子,它需要有'overflow:hidden' – vsync

+0

@vsync:這不是「瀏覽器的奇怪」。這完全是故意的行爲。 – BoltClock

+0

與我的8年CSS經驗,我覺得很奇怪,而且不合邏輯的行爲。 – vsync

回答

3

在容器上overflow: hidden只是隱藏流過的框外,如下面的圖精美證明的任何內容(克里斯Coyier禮貌/ CSS-技巧):

http://css-tricks.com/the-css-overflow-property/

你可能在使用overflow: hidden作爲一種clearfix在這種情況下,這只是一種方法來獲取父容器擴展到其浮動子的高度(因爲浮動元素被取出正常頁面流)。使用overflow: hiddenoverflow: visible在有浮動兒童的容器上的區別可以在following demo中看到。

1

如果元素的內容大於容器,它通常會更改容器的大小。 overflow:hidden只是告訴它隱藏任何不適合容器的內容,所以容器保持相同的大小。

1

overflow: hidden從來沒有打算直接影響到彩車 - 如通過這裏的其他答案它的主要目的是控制內容溢出,換句話說就是按照罐子上的說法 - 但它造成容器產生自己的block formatting context的副作用不明確。發生這種情況時,the container must expand to contain its floats,即使浮標通常被取出正常流量。這通常在CSS教程中沒有提及,因爲它不完全是overflow屬性的預期用途。

請注意,這與清除浮動數據不同,因爲您正在修改容器本身並且沒有引入一些清除元素(就像clearfix一樣)。

參見:Why does overflow: hidden have the unexpected side-effect of growing in height to contain floated elements?