2009/09/25 16:35
或许用了这么久的伪类 :hover,还有部分朋友还不完全了解 hover 的规则:
在 CSS1 中此伪类仅可用于 a 对象。且对于无 href 属性(特性)的 a 对象,此伪类不发生作用。
在 CSS2 中此伪类可以应用于任何对象。
但目前 IE5.5、IE6 仅支持 CSS1 中的 :hover,不过新出的 IE7 是支持 CSS2 中的 :hover。
当我们用伪类 :hover 做某些特殊效果时,依据 CSS2 很好完成,但为了现在占据主流浏览器的 IE6 ,我们又不得不做很多工作,比如给添加a元素等来模拟完成最终的效果。
不是标准说明的错,也不是 IE 浏览器不支持 CSS1,而是 IE 浏览器自身解析的问题,是 IE5.5 和 IE6 中伪类:hover 的 BUG。
那又该如何解决这个问题呢?
这个 BUG 可以通过在链接的属性中增加某些特殊的 CSS 属性声明来消除。
下面我们对上面的第二个例子进行实验,究竟哪些属性可以帮我们来消除这些 BUG。
对 CSS 代码我们增加:
li a:hover {}
对其属性我们仅设定 width:100px; 发现在 IE6 中依旧没有变化,我们尝试着更改 width 的 value ,比如使其 width:99px,奇怪的事情发生了,在 IE6 中,隐藏的部分在触发的时候显示出来了。我们再对 li a:hover 的属性仅设定 color 来测试(初始值为 #fff),更改 color 值,发现在 IE6 下却也不能触发显示,奇怪,奇怪,真奇怪……是不是依旧是一头雾水……没关系,继续往下实验,或许归类了我们就能发现规律了!
我们再用其他属性进行设置:width,positon,background,text-decoration,font-size,font-weight,font-family,border,float,display,font-style,margin,padding,text-align,overflow,text-transform,text-indent,z-index,vertical-align。
我们发现除了 text-decoration,color,z-index 不能触发显示(对于不能触发显示的部分,可以还有某些遗漏的属性,欢迎朋友补充)外,其他属性均可以做为消除伪类 :hover BUG 的特定属性。
示例:
div a:hover {
background:;
}
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
中查看更多“IE中伪类:hover的使用及BUG ”相关内容
IE6与a标签失效问题让#不再跳到顶部
去掉ie6、ie7、ie8、ff之a的链接虚


