2011-03-18 36 views
9

说你,或者我,已编码的HTML元素...游标属性应该在带或不带:hover伪类的规则中设置?

<a id='hydrogen' href='#'>H</a> 

......以及一些:hover CSS ...

#hydrogen:hover { 
    background:red; 
} 

...现在我们要把一个当盘旋时花式手形光标。有两种可选方式:

适用于无状态的元素:

#hydrogen { 
    cursor:pointer; 
} 

,或者适用于:悬停状态。

#hydrogen:hover { 
    color:red; 
    cursor:pointer; 
} 

我的问题:是否有任何理由(一个或多个)为什么一个方式是果断优于其他?

...还是番茄,番茄?

回答

8

兼容性:IE6及以下版本仅识别a元素上的:hover伪类。

3

他们都是一样的,只要你总是想要pointer那里,无条件徘徊。

:hover伪类will inherit cursor: pointer from its non hovered state

我宁愿把它放在正常的选择器上,而不是:hover

+0

非悬停状态不是由缺少':hover'伪类表示的,而是由':not(:hover)'显式表示的。这就是为什么这个问题称之为“无状态”,也是为什么风格会被应用。 – BoltClock 2015-01-22 15:22:04

0

两种方式同样好。不过,如果元素不是锚点,我会将其放在id本身上,因为:hover在ie6或更低版本上不起作用。如果你不关心IE的老版本。那么两种方式都是正确的。