IE CSS Bug系列:浮動複製最後一個字元bug

rubyisapm發表於2013-09-10

伯樂線上導讀:IE 瀏覽器不支援很多 CSS 屬性是出了名的,即便在支援的部分中,也是有很多 Bug 的。Zoffix Znet 整理了 IE 中的 CSS 問題,有簡單的問題示例,也有解決方法。 這個系列共有 58 個指南,70 個解決方案。

這篇由伯樂線上前端開發小組的@rubyisapm 翻譯。(歡迎更多前端開發朋友來加入“前端開發小組。)

 

受影響版本

該BUG影響:IE7、IE6

Bug現象

被浮動元素的最後一個元素被複制現象

教程日期

2009.8.18 11:31:50 星期二

描述

這是我在 Gérard Talbot 的 IE7 Bug 頁面上發現的一個bug。說實在的,我忍不住對這這個bug傻笑。在 IE6 和 IE7 中,會複製最後一個字元。讓我們來看看演示:

演示

該演示在一個單獨頁面

HTML程式碼:

CSS程式碼:

設定如下:演示中有一個div元素,有明確的width設定,在這個div中,有一個元素P——此元素有margin-right屬性且該值不為0(在IE6中margin不是必需的),且在該P元素內部有三個浮動的子元素,且這三個子元素的width值比外層元素div的width大。我們來看一下在受影響的瀏覽器中出現了什麼情況:最後一個字元“C”——被複制並重新顯示在下一行。我已經強調過這裡是有三個浮動元素,目前情況就是:如果有少於三個的浮動元素,此bug不會發生,而如果浮動元素數目多於三個,連續浮動元素bug就出現了。

 

解決方案

下面是針對此bug的解決方案

解決日期

2009 8.18 11:32:52 星期二

修復版本

所有受影響的IE

描述

注意:此方案也適用於針對浮動元素bug的CS解決方案

 

我們要用IE的bug修復利器去修正該bug。不!我不是在說“layout”,雖然可以通過設定P元素的layout以便IE7下修正該bug(IE6不適用)。來看看現在的頁面:

 

修正後的頁面:在單獨的頁面開啟

HTML程式碼:

CSS程式碼:

唯一的區別是:我們在浮動元素span上加了position:relative這個屬性,字元C就不會再IE6和IE7中出現”複製”的現象了。

相關文章