通常是滿版畫面才會踩到這個雷。
紀錄
overflow 可以設定的值有:
- visible (預設值)
- clip
- auto
- hidden
- scroll
- inherit
overflow 有一個用途是拿來與 border-radius 結合來製作圓角效果。
如果一個容器元素中的子元素是 100%填滿容器的話,單單在容器元素中設定 border-radius 是看不出效果的,你會看到子元素的部分會凸出去容器外面。
這是因為 border-radius 本身並不會改變容器的寬度,並且 overflow 的預設值為visible
,所以為了能夠正確的顯示圓角,你還得再對 overflow 這個屬性做調整。
其實我一直以為overflow: hidden
是最正確的作法,因為這是一個很直覺的想法,就隱藏起來嘛!所以當然要設成 hidden 不是嗎?
大部分的情況下這是正確的,不過如果有一天容器的高度可能會被壓縮到很小的情況發生時,你就會發現這樣做會有個問題:
內容居然被腰斬了!
是的,因為這就是overflow:hidden
的作用,只要超出容器範圍的所有東西都會被隱藏起來。
所以當我發現這個問題後,我上網做了一些研究,才發現另外一件事:
如果想要將溢出容器的範圍給隱藏起來,其實並不是只有overflow:hidden
這個做法,而是:
只要把 overflow 設為 visible 以外的值即可。
原理:只有 visible 這個值不會對容器做裁切
示範
1 | <div class="box"> |
1 | html, body { |
overflow: hidden
:
overflow: auto
: