IE CSS bugs 集合
概述
IE 浏览器以不支持大量的 css 属性出名,同时也因其支持的 css 属性中存在大量 bug 。
本页列举了 IE 下的一些问题,实例样本和一些我们已知的解决方法。
尽管我已经尽力按照它们本来的性质对它们进行分类,仍有许多 bug 可以分在好几个部分之下,这种情况下,我将会将此 bug 分在普通 bug 这一部分。
统计
目前为止。此站点包含 46 个 ” 普通 bug” 教程, 5 个 ”haslayout bug” 教程, 6 个 ” 不支持的方法 ” 教程,一个“插图 bug ”教程。总共 58 个教程, 70 个解决方法。
最近的教程发布于 2009 年 8 月 19 日 15:38:47 星期三
站点包含 44 个 IE6 bug , 28 个 IE7 bug 以及 19 个 IE8 bug 。
注意版本
在教程中你会看到诸如“影响: IE8 和所有以下”或“修复:所有版本”。这里的“所有”意思是 IE6 , IE7 和 IE8 。 IE5 和 IE5.5 已经是历史了,本网站没有考虑这些版本的教程和解决方案的。
普通 bug
此部分包含的是那些不能快速定位为其他部分或是可以同时归类到两部分或更多部分的 bug 。
普通 IE css bug
bug 名称 |
影响版本 |
描述 |
Image Label Focus Bug |
IE8,IE7,IE6 |
<img> 元素在 <label> 元素之内,单击时,焦点不会转移到相应的表单控件 |
按钮 Margin-Auto 非居中 |
IE8 |
Button 或类似元素并不居中当 { display: block; margin-left: auto; margin-right: auto;} 作用与它 时候且“宽”是不明确的 |
不正确的浮动收缩 - 包裹 bug |
IE7,IE6 |
一个浮动元素(设置了 clear 属性)在另一个浮动元素之后时不能正确的收缩 - 包裹 |
overflow 滚动条的不一致 |
IE7,IE6 |
非常规的在 <html> 元素上设置 overflow 属性可能会出现关于 <body> 元素的 overflow bug |
浮动挤压怪异差距 bug |
IE7,IE6 |
倒数第一个和倒数第二个浮动元素的间距似乎垂直堆叠了 |
浮动复制最后一个字符 bug |
IE7,IE6 |
浮动元素的最后一个字符被复制 |
空元素高度 bug |
IE7,IE6 |
有 ”layout” 属性的空元素获得高度 |
表单控件的双边距 bug |
IE7,IE6 |
<input> 和 <textarea> 元素上的水平 margin “继承”于含有 margin 和 layout 属性的祖先 |
IE7 1 像素点边框表现为虚线边框 |
IE7 |
当至少有 1 边的变宽宽度大于 1 像素时, 1 像素的点边框表现为虚线边框 |
Relative Overflow 失效的 bug |
IE7,IE6 |
含有 overflow ( hidden 或 auto )属性的元素的后辈如果含有 position:relative 属性,则其表现得就像是设置为 visible 属性一样 |
IE7 :hover “阻断”于 absolute 的 bug |
IE7 |
当绝对定位的子元素隐藏不可见的时候,使用 :hover 改变其 left/top 值貌似是不管用的。如果其可见, left/top 也不会因 :hover 而改变 |
Button 按钮 :active 时背景改变 bug |
IE8 |
当 :active 状态应用与 <button> 或 <input type=”submit” /> 时背景会向上像左移动 |
忽略 :focus 的 bug |
IE8 |
当一个包含 :focus 的选择器在另外一个简单的选择器之后, :focus 是被忽略的。 |
看不见的 hover 边框 bug |
IE8 |
当设置了 outline ,在 :hover 状态下,下边框要么没有完全显示,要么短了 1 像素(或是取消了 outline ) |
Padding/margin 百分比 bug |
IE8 |
与百分比垂直 padding 特定组合,垂直 margin 间距似乎会出岔子,在父级的父级设置了 padding 或 border 的亦会如此 |
图片浮动项目符号混乱 bug |
IE8 |
在项目列表中含有浮动属性的图片的时候,项目标记(或编号)位置不正确或是压根没有渲染出来 |
TH 标签 text-align 不继承的 bug |
IE8 |
祖辈的 text-align 值不会被 TH 元素继承下来 |
样式文件 32 的数目限制 bug |
IE8,IE7,IE6 |
第 32 个及其以后的样式文件中的样式一概忽略 (i.e. <style>, <link> 或 @import) |
白色背景 hover 无效 bug |
IE7 |
背景 hover 后转为白色背景无效 |
IE7 子选择器注释 bug |
IE7 |
一个选择器如果包含子选择器,且在注释之后,是被忽略的 |
星号 HTML bug |
IE6 |
* html 选择器在 IE6 下不会被无视 |
IE6 !important 忽略 bug |
IE6 |
如果相当的规则再设置一次,则 !important 关键字将会被忽略 |
PNG 图片和背景色的不匹配 |
IE8,IE7,IE6 |
尽管有相同的颜色代码,但是 css 中的指定的颜色与 png 图片是有差异的 |
Auto Margin 不居中的伪 bug |
IE8,IE7,IE6 |
block 属性元素设置了两侧的 margin auto 不居中显示 |
:first-line!important 规则无效 bug |
IE8 |
当使用了 !important 修饰语后, :first-line 内部的伪 class 完全不起作用 |
:first-letter 无效 bug |
IE6 |
全部的 :first-letter 规则集无效 |
:first-letter!important 无效 bug |
IE8 |
当使用了 !important 修饰语后, :first-letter 内部的伪 class 完全不起作用 |
部分可点击 bug |
IE6,IE7 |
只有文字是可点击的 / 有反应的,非得把鼠标移到真正的文字上才能有 :hover 反应,链接失效 |
楼梯 bug |
IE6,IE7 |
浮动元素像梯子一样一个一个堆砌 |
列表背景消失 bug |
IE6 |
<li>, <dt>, <dd> 背景消失 |
noscript 幽灵 bug |
IE8,IE7,IE6 |
脚本启用的时 <noscript> 元素显示,仅 border/background 从中显示 |
透明无法点击的 bug |
IE8,IE7,IE6 |
使用了 filter 滤镜修复 png 背景透明问题的时候背景图片的透明区域链接无法点击 |
列表内容下沉 bug |
IE8 |
<li> 里面的内容在项目列表编号的下面 |
<ol> 数值不增加 bug |
IE7,IE6 |
<ol> 中显示的数目不随着 <li> 增加 |
<ol><ul> 无编号 bug |
IE7,IE6 |
项目编号 / 数值从 <ol><ul> 元素那儿消失了 |
line-height 图片不垂直居中的 bug |
IE7,IE6 |
使用 line-height 方法,图片不垂直居中 |
没有背景图片 bug |
IE8,IE7,IE6 |
IE 下使用了 background 背景图片,但是背景图片不显示(使用 background 缩写属性) |
自定义光标 bug |
IE8,IE7,IE6 |
自定义光标在 IE 下不显示 |
背景泄露 bug |
IE6 |
背景溢出到跟随其后的其他元素上去了 |
高度撑开的 bug |
IE6 |
元素的高度比指定的高度要长 |
宽度撑开的 bug |
IE6 |
元素的宽度比指定的宽度要宽 |
双边距 bug |
IE6 |
左边距或右边距在浮动元素上双倍 |
负 margin bug |
IE7,IE6 |
当使用负 margin 时,容器之外的部分元素不可见 |
3px 空白 bug 又称文本慢跑 bug |
IE6 |
靠近浮动元素的元素要么有 3px 的间距,要么位置偏下,或是保持偏移当几个元素依次浮动时 |
Text-Align bug |
IE7,IE6 |
text-align 属性影响 block 水平的元素 |
Haslayout bug
有 haslayout 或没有 haslayout 导致的 IE bug
haslayout IE css bug
bug 名称 |
影响版本 |
描述 |
令人害怕的浮动 bug |
IE7,IE6 |
haslayout 的元素自动清除浮动代替包围浮动元素 |
边框混乱 bug |
IE6 |
边框显示混乱。例如在不该的地方显示或丢失 |
hover bug |
IE6 |
选择器例如 a:hover foo{} 不起作用 |
部分点击 bug |
IE6 |
样式为 display:block<a> 链接仅文字部分是可点击的,事实上在标准浏览器下还有额外的区域可点击 |
内容消失 bug |
IE6 |
一些内容在页面滚动或浏览器最大化最小化的时候消失或重现 |
不支持的方法
各种各样的方法提供的属性效果和属性值在 IE 下是不执行的
不支持的方法
方法名称 |
影响版本 |
描述 |
不支持子选择器方法 |
IE6 |
子选择器无效 |
Max-width 方法 |
IE6 |
max-width 不支持 |
Max-height 方法 |
IE6 |
max-height 不支持 |
opacity |
IE8,IE7,IE6 |
透明度 opacity 不支持 |
Min-width |
IE6 |
min-width 不支持 |
Min-height |
IE6 |
min-height 不支持 |