浏览器对css 伪类 hover的支持

本文探讨了IE6、IE7(Q)、IE8(Q)等浏览器对非A元素':hover'伪类的支持情况及其对页面效果的影响。通过实例展示了不同浏览器环境下':hover'伪类的表现差异,并提供了两种解决方案。

今天在调试的时候,发现用hover写的样式在火狐上可以,在ie上却不行,百度了下,原来我用的是ie的Quirks模式。

这是在http://www.w3help.org网站上查到的结果。

问题描述

IE6 IE7(Q) IE8(Q) 不支持 A 元素以外的其他元素的 ':hover' 伪类。

造成的影响

在非 A 元素上使用了 ':hover' 伪类后,可能会使页面在 IE6 IE7(Q) IE8(Q) 中没有的任何效果。

受影响的浏览器

IE6 IE7(Q) IE8(Q) 

问题分析

对于此问题,我们通过以下的测试用例来说明。

分析以下代码:

<style type="text/css">
  p:hover {
    color: red;
  }
</style>
<p>Aloha!</p>

根据 CSS2.1 规范中的描述可知,当鼠标悬停在 P 元素上时,P 中的字体会变成红色。

这段代码在不同的浏览器环境中的表现(鼠标悬停在 'Aloha!' 上的时候):

IE6 IE7(Q) IE8(Q)IE7(S) IE8(S) Firefox Opera Safari Chrome

所以对于 ':hover' 伪类的支持情况,如下表:1

IE6IE7(Q)IE7(S)IE8(Q)IE8(S)FirefoxSafariOperaChrome
NNYNYYYYY

注1:实际中其他除常用 HTML 标记(A 标记除外)同样适用此例,并非仅 P 标记自身不支持。

解决方案

使用 JavaScript 绑定 'onmouseover' 和 'onmouseout'(模仿 ':hover');
使用 Whatever:hover,该组件利用 IE 特有的 CSS 行为(behavior)及通过 JavaScript 来模拟 ':hover' 伪类的效果。

转载于:https://www.cnblogs.com/onlywujun/archive/2013/05/17/3083392.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值