IE,firefox下使用CSS屬性overflow的存在的不同
首先建立一個HTML文件用於測試用,代碼如下:- <div>
- <pre><code>
- <a href="https://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權</a>
- <a href="https://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權</a>
- <a href="https://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權</a>
- <a href="https://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權</a>
- <a href="https://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權</a>
- </code></pre>
- </div>
一下為css代碼:
- div{
- width: 60%;
- }
- pre{
- overflow : auto ;
- background-color : #fff0f5 ;
- margin : 1.6em 0 ;
- padding : 0 1.6em ;
- }
以上代碼在Firefox中的顯示是可以預料的。
但是在IE6中,沒有任何 overflow 效果能夠顯示出來,一下為IE六下的效果:

而在IE7中的顯示也有些不同,多了一個惹人討厭的右側滾動條,如圖:

IE6的bug可以通過給containing block添加width的方法解決,即
- pre{
- overflow : auto ;
- background-color : #fff0f5 ;
- margin : 1.6em 0 ;
- padding : 0 1.6em ;
- width : 90% ;
- }
多一個右側滾動條的原因在於:IE總是將底部滾動條添加在元素的總高度的內部,這樣使得元素的一部分高度被底部滾動條占據,不能完全顯示,所以IE就自動添加了右側滾動條使得元素被擋住的內容也能夠滾動後看到 。
最後為了去除IE右側的滾動條,我們給containing block添加以下CSS
- pre{
- overflow : auto ;
- background-color : #fff0f5 ;
- margin : 1.6em 0 ;
- padding : 0 1.6em ;
- width : 90% ;
- overflow-y : hidden ;
- }
在實際應用中,這一效果可以應用於所有固定格式的元素(通常為 pre 元素),最常見的是代碼塊。
最後更新:2017-04-02 00:06:38