修正IE下使用CSS屬性overflow的bug

2021-04-15 12:01:32 字數 1173 閱讀 3303

你或許知道ie在使用 css

屬性overflow時,有一些bug,請允許我在裡重述一下。

我們要建立乙個測試用html檔案,以下是關鍵的**片斷

http://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權

http://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權

http://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權

http://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權

http://creativecommons.org/licenses/by-nc-sa/2.5/cn/" rel="license">遵守我的版權

在以上**中我將應用以下css

divpre

以上**在firefox中的顯示是可以預料的。

但是在ie6中,沒有任何 overflow 效果能夠顯示出來

圖1 ie6下的效果

而在ie7中的顯示也有些不同,多了乙個惹人討厭的右側滾動條

圖2 ie7下的效果

ie6的bug可以通過給containing block新增width的方法解決,即

pre此時,ie6的滾動條出來了,但是它與ie7表現的一樣,多了乙個右側滾動條。

多乙個右側滾動條的原因在於:ie總是將底部滾動條新增在元素的總高度的內部,這樣使得元素的一部分高度被底部滾動條佔據,不能完全顯示,所以ie就自動新增了右側滾動條使得元素被擋住的內容也能夠滾動後看到 。

最後為了去除ie右側的滾動條,我們給containing block新增以下css

pre這樣我們就在ie中創造出了和firefox、opera和safari同樣的 overflow : auto 效果。

在實際應用中,這一效果可以應用於所有固定格式的元素(通常為 pre 元素),最常見的是**塊。

原文:http://www.lunaticsun.com/article/ie-overflowbug

不同IE下的css寫法

css hack 是在標準 css 沒辦法相容各瀏覽器顯示效果時才會用上的補救方法,在各瀏覽器廠商解析 css 沒有達成一致前,我們只能用這樣的方法來完成這樣的任務。最近的專案要針對 firefox 瀏覽器的css樣式進行 特別處理,可愛的 firefox 居然不支援 text overflow 屬...

IE下css常見的問題

1 雙邊距問題 mydiv float left margin left 100px 在ie6下這個div的左邊距和普通的瀏覽器不同,他會是200px 修復這個問題 加乙個屬性 display inline 2 ie下面的haslayout問題 div box background red filt...

ie6下的line height屬性

line height這個屬性是被ie6所支援的。當是當乙個父級元素內的子元素,包含了文字,且文字和img,input,label,span這些內聯元素連線在一起的時候,你對父級元素設定line height是沒有任何效果的。很多情況下,我們希望文字和表單元素 比如input輸入框 垂直居中,在設定...