基本上,在Internet Explorer 8和Internet Explorer 9中,菜单没有应用
:active
样式。当按下时,它应该变暗。请告诉我原因并提供修复方法。先感谢了。:active
样式。当按下时,它应该变暗。请告诉我原因并提供修复方法。先感谢了。为了保持相关性并节省其他人搜索解决方案的麻烦,我也发现了一个问题在IE <= 10中存在"错误",即无法将样式应用于:active子元素,例如;
a:active img {
position:absolute;
top:-30px;
}
以上内容不会改变图像在IE <= 10的位置,此时您需要在子元素本身上应用:active;
a:active img,
a img:active {
position:absolute;
top:-30px;
}
span:active + span
选择器在IE10中也不起作用。请注意,简单的span:active
是有效的。 - ruvim
:active
伪类适用于用户正在激活元素的时候,例如,在用户按下鼠标按钮和释放它之间的时间。请参阅 W3 的文档。
但是您将 :active
选择器应用于您的 <li>
元素,这个元素不能有活动状态,因为它从未真正被激活 - 只有在悬停时才会激活。您应该将 <- IE 6 中是正确的。:active
状态应用于 <a>
更新:这里有一个测试样例在 jsFiddle 上,您可以看到它对 <a>
元素有效,但对 <li>
元素无效。
我在这里找到了一些有趣的信息。
:active 伪类应用于用户选择链接时。
CSS1 对此行为有点模糊:“‘active’ 链接是指当前正在被读者选择(例如,通过鼠标按钮按下)的链接。” 此外,在 CSS1 中,:active 与 :link 和 :visited 是互斥的。(而且没有 :hover 伪类。)
CSS2 更改了这一点,使得 :active 的规则可以与 :visited 或 :link 同时应用。并且对其行为进行了更好的解释:“在用户激活元素时应用 :active 伪类。例如,在用户按下鼠标和释放之间的时间内。”
我认为,Firefox 等浏览器比 IE 更符合 CSS2 的规范。但是,由于链接应该加载新页面,因此IE可以合理地说,当新页面加载时,链接仍然处于“active”状态,这就是发生的情况。
您可以在 Firefox 中看到类似的不符合直觉的行为,方法是单击该链接,但将鼠标从链接上移开,同时按住鼠标键。链接不会被激活(不会加载新页面),但链接仍保持在 :active 状态。另一方面,Chrome 和 Opera 取消链接的激活状态,但在不同的时间;Chrome 在鼠标离开链接区域时立即取消,而 Opera 直到鼠标按钮释放时才取消。在此示例中,IE 的行为与 Firefox 相同。(在将鼠标从链接上拖出后按 Enter 键,您将看到更多行为上的差异。)
我不会把这些差异称为“错误”,因为规范存在歧义。
我唯一能提供的解决方法是接受您无法控制浏览器行为的每个方面。不同浏览器的用户对行为有不同的期望,如果您开始改变用户的期望,那么您就走错了路。
li
不能有活动状态。 - BoltClock
:active
样式?对我来说,它们在两个版本中都有效。 - BoltClock