CSS在IE6,7,8中的差异及选择器问题

需积分: 9 0 下载量 146 浏览量 更新于2024-07-25 收藏 39KB DOCX 举报
"本文详细介绍了CSS在Internet Explorer 6, 7 和8中的差异,主要关注这三个版本之间对CSS选择器、伪类与伪元素、属性支持、其他技术以及重要bug和不兼容问题的差异,旨在为开发者提供一个清晰的参考指南。 1、选择器与继承 - 子选择器:子选择器(>)选择父元素的直接子元素。IE7存在一个bug,如果父元素和子元素之间有HTML注释,子选择器将失效。 - 链类:用于处理具有多个class的元素。IE6只能匹配链中的最后一个class,不能匹配所有class。 - 属性选择器:允许根据元素的属性来定位元素。例如,`a[href]`会选择所有带有href属性的a标签。 - 临近兄弟选择器(+):定位紧跟在指定元素后的同级元素。在IE7中,如果有注释,此选择器可能失效。 - 普通兄弟选择器(~):选择指定元素之后的所有同级元素。在所有兄弟元素中都适用,而不仅仅是紧跟的元素。 2、伪类与伪元素 - :hover后面的后代选择器:允许在:hover伪类后使用后代选择器,如`:hover a span`,当鼠标悬停在a元素上时,改变其内部span元素的样式。这种用法在某些版本的IE中可能不被支持。 3、属性支持 CSS属性在不同版本的IE中可能存在不同程度的支持,例如,一些高级的CSS3属性可能在IE6和IE7中完全不被支持,而在IE8中可能部分支持。 4、其它各种技术 这部分可能涵盖如CSS表达式、滤镜等特性,它们在IE6到IE8之间可能存在差异,例如CSS表达式在性能上有显著问题,且在IE8标准模式下被禁用。 5、重要bug和不兼容问题 文章会列出一些影响布局、渲染和行为的重要bug,例如,浮动元素的清除方式、盒模型差异(IE使用怪异盒模型,而其他浏览器使用标准盒模型)、透明度支持以及z-index的处理等。 通过这些详细的对比,开发者可以更好地理解如何在不同版本的IE中编写兼容的CSS,以及如何避免或修复可能出现的问题。对于那些需要向后兼容旧版IE的项目,这份指南尤其有价值。"