CSS 在IE6, IE7 和IE8中的差别

2020-05-09 07:37:55易采站长站整理

ie

这些统计中比较有趣的部分是,IE6、IE7、IE8之间的数值很接近,这防止了单个Microsoft的浏览器占居统治地位——与过去的情况相反。根据这些令人遗憾的统计结果,在为客户开发网站的时候开发人员对所有当前使用的IE浏览器做全面的测试是必要的,而且这样在个人项目上也可以拉拢更多的用户。

多谢那些JavaScript库(框架),跨浏览器的Javascript的测试已经像当前形势所允许的那样接近完美了。但在CSS开发中还不是这样,特别是关系到IE目前存在的三个版本。

本文尝试为希望了解CSS对IE6、IE7、IE8的支持的不同的开发者提供一份详细的、易用的参考。本参考包含以下情况的概述和兼容情况:

三个浏览器中的一个支持而另外两个不支持的条目
三个浏览器中的两个支持而另外一个不支持的条目

本文不讨论:

三个浏览器都不支持的条目
私有属性

因此,本文的中心是三个浏览器中的不同,而不是必要的支持缺陷。该列表被分为以下五个部分:

选择器与继承
伪类与伪元素
属性支持
其它各种技术
重要bug和不兼容问题

选择器与继承
子选择器
示例

body > p {
color: #fff;
}

描述

子选择器选择一个特定父级元素的所有直接子级元素,在上面的例子中,

body
是父元素,
p
是子元素。

支持情况

IE6
No
IE7
Yes
IE8
Yes

Bugs

IE7中,如果在父级标签和子级标签之间有一个HTML注释,子选择器将不会工作。

链类
示例

.class1.class2.class3 {
background: #fff;
}

描述

链类用于送一个HTML元素有多个class声明的情况,就像这样:

<div class="class1 class2 class3">
<p>Content here.</p>
</div>

支持情况

IE6
No
IE7
Yes
IE8
Yes

Bugs

IE6好像支持这种情况,因为它能匹配链中的最后一个class到使用该class的元素上,然而,它并不能限制一个使用链中所有class的元素。

属性选择器
示例

a[href] {