修正IE下使用CSS屬性overflow的bug
更新時(shí)間:2008年03月22日 14:12:04 作者:
你或許知道IE在使用 CSS 屬性 overflow 時(shí),有一些bug,請(qǐng)?jiān)试S我在里重述一下。
我們要建立一個(gè)測(cè)試用HTML文件,以下是關(guān)鍵的代碼片斷
<div>
<pre><code>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
</code></pre>
</div>
在以上代碼中我將應(yīng)用以下CSS
div{
width: 60%;
}
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
}
以上代碼在Firefox中的顯示是可以預(yù)料的。
但是在IE6中,沒(méi)有任何 overflow 效果能夠顯示出來(lái)
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
width : 90% ;
}
此時(shí),IE6的滾動(dòng)條出來(lái)了,但是它與IE7表現(xiàn)的一樣,多了一個(gè)右側(cè)滾動(dòng)條。
多一個(gè)右側(cè)滾動(dòng)條的原因在于:IE總是將底部滾動(dòng)條添加在元素的總高度的內(nèi)部,這樣使得元素的一部分高度被底部滾動(dòng)條占據(jù),不能完全顯示,所以IE就自動(dòng)添加了右側(cè)滾動(dòng)條使得元素被擋住的內(nèi)容也能夠滾動(dòng)后看到 。
最后為了去除IE右側(cè)的滾動(dòng)條,我們給containing block添加以下CSS
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
width : 90% ;
overflow-y : hidden ;
}
這樣我們就在IE中創(chuàng)造出了和Firefox、Opera和Safari同樣的 overflow : auto 效果。
在實(shí)際應(yīng)用中,這一效果可以應(yīng)用于所有固定格式的元素(通常為 pre 元素),最常見(jiàn)的是代碼塊。
復(fù)制代碼 代碼如下:
<div>
<pre><code>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
<a >遵守我的版權(quán)</a>
</code></pre>
</div>
復(fù)制代碼 代碼如下:
div{
width: 60%;
}
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
}
以上代碼在Firefox中的顯示是可以預(yù)料的。
但是在IE6中,沒(méi)有任何 overflow 效果能夠顯示出來(lái)
而在IE7中的顯示也有些不同,多了一個(gè)惹人討厭的右側(cè)滾動(dòng)條
IE6的bug可以通過(guò)給containing block添加width的方法解決,即
復(fù)制代碼 代碼如下:
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
width : 90% ;
}
此時(shí),IE6的滾動(dòng)條出來(lái)了,但是它與IE7表現(xiàn)的一樣,多了一個(gè)右側(cè)滾動(dòng)條。
多一個(gè)右側(cè)滾動(dòng)條的原因在于:IE總是將底部滾動(dòng)條添加在元素的總高度的內(nèi)部,這樣使得元素的一部分高度被底部滾動(dòng)條占據(jù),不能完全顯示,所以IE就自動(dòng)添加了右側(cè)滾動(dòng)條使得元素被擋住的內(nèi)容也能夠滾動(dòng)后看到 。
最后為了去除IE右側(cè)的滾動(dòng)條,我們給containing block添加以下CSS
復(fù)制代碼 代碼如下:
pre{
overflow : auto ;
background-color : #fff0f5 ;
margin : 1.6em 0 ;
padding : 0 1.6em ;
width : 90% ;
overflow-y : hidden ;
}
這樣我們就在IE中創(chuàng)造出了和Firefox、Opera和Safari同樣的 overflow : auto 效果。
在實(shí)際應(yīng)用中,這一效果可以應(yīng)用于所有固定格式的元素(通常為 pre 元素),最常見(jiàn)的是代碼塊。
您可能感興趣的文章:
- PHP has encountered a Stack overflow問(wèn)題解決方法
- css之使table也能overflow:hidden
- android PopupWindow 和 Activity彈出窗口實(shí)現(xiàn)方式
- android popwindow實(shí)現(xiàn)左側(cè)彈出菜單層及PopupWindow主要方法介紹
- Android Animation實(shí)戰(zhàn)之屏幕底部彈出PopupWindow
- Android入門(mén)之PopupWindow用法實(shí)例解析
- Android之用PopupWindow實(shí)現(xiàn)彈出菜單的方法詳解
- Android編程實(shí)現(xiàn)popupwindow彈出后屏幕背景變成半透明效果
- Android PopupWindow 點(diǎn)擊外面取消實(shí)現(xiàn)代碼
- Android用PopupWindow實(shí)現(xiàn)自定義overflow
相關(guān)文章
DIV+CSS作網(wǎng)頁(yè)容易犯的錯(cuò)誤小結(jié)
DIV+CSS作網(wǎng)頁(yè)容易犯的錯(cuò)誤小結(jié)...2007-11-11
使用display:none時(shí)隱藏DOM元素?zé)o法獲取實(shí)際寬高的解決方法
這篇文章主要介紹了使用display:none時(shí)隱藏DOM元素?zé)o法獲取實(shí)際寬高的解決方法的相關(guān)資料,需要的朋友可以參考下2022-07-07
使用CSS不用程序?qū)崿F(xiàn)文字自動(dòng)截?cái)?用省略號(hào)代替
使用CSS不用程序?qū)崿F(xiàn)文字自動(dòng)截?cái)?用省略號(hào)代替...2007-11-11



