+ -
当前位置:首页 → 问答吧 → [分享]与haslayout有关的ie6崩溃问题

[分享]与haslayout有关的ie6崩溃问题

时间:2010-07-01

来源:互联网

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
a:hover{width:2px; background:red;zoom:1;float:left;....}
</style>
</head>
<body>
<a href="#" style="position: relative;">aaaaa</a>
</body>
</html>

在IE6中使用伪类为原本没有haslayout的relative标记动态添加haslayout后会崩溃。

上例中A为inline元素,样式设置了relative。
hover伪类中动态设置了width,这触发的haslayout。但因为文档为标准模式,因此这里的width不会触发haslayout。
*IE6(S)的width和height属性不会对inline元素触发haslayout特性。

之后如果设置其他如zoom,float等必然触发haslayout的样式,就会造成IE6崩溃。
display:block与width或height同时设置也会触发haslayout,造成崩溃。

***IE7(QS)IE8(QS)都不会有此现象,这深层次说明IE各个版本的(Q)模式使用的渲染内核是不同的。

作者: mochimo   发布时间: 2010-07-01