IE CSS Bug系列:相對定位時overflow失效

酸齋笑我發表於2013-09-27

伯樂線上導讀:IE 瀏覽器不支援很多 CSS 屬性是出了名的,即便在支援的部分中,也是有很多 Bug 的。Zoffix Znet 整理了 IE 中的 CSS 問題,有簡單的問題示例,也有解決方法。 這個系列共有 58 個指南,70 個解決方案。這篇由伯樂線上前端開發小組的@szxw 翻譯。(歡迎更多前端開發朋友來加入“前端開發小組。)

【提示】:IE CSS BUG 系列譯文正在進行中,後續或有改動和調整,請不要轉載本系列的譯文。

—————————————————————————–

受影響版本

該BUG影響: IE7,IE6

表現

當產生overflow的子孫元素的position屬性被設定為”relative”時,無論元素的overflow屬性設定為”hidden”還是”auto”,表現的都如同被設定為”visible”一樣。

教程日期

2009-08-17 15:51:12 星期一

描述

這是我在Gérard Talbot的IE7 BUG 集合頁上發現的另外一個BUG。我沒節操地盜用了他的示例中的圖片,因為我覺得這是一個精彩的演示該BUG的方式(希望他不介意)。我要對Gérard的BUG的描述做的補充是,塊級元素也一樣會無法剪裁,而且現在用{ overflow: auto; }替換{ overflow: hidden }也會一樣出錯。讓我們看一下:

示例

示例在一個單獨頁面上。

HTM Code:

CSS  Code:

功能健全的瀏覽器將只會顯示一個有邊框的綠色方塊。IE6和IE7瀏覽器則無法把方塊裁剪為200px200px的容器尺寸,會顯示圖片的紅色部分,而這部分是在200px200px的正方形之外的。另外,注意疊加的子孫元素覆蓋了 .container 的邊框。

 

解決方案

下面是按照解決方案型別排序的對上述問題的解決方案。

解決方案(最佳方案)

解決方案日期

2009-08-17 15:51:27 星期一

修復版本

所有受影響版本

描述

修復這個BUG的是相當簡單的,讓我們想看一下示例:

修復後的例項在一個單獨頁面上。

HTML Code:

CSS  Code:

我們的標記語言沒有變化。我唯一增加的內容是,對父元素—.container <div>新增了{ position: relative; }。這樣在IE6和IE7下也表現正常了。享受它吧!

相關文章