css“:active”,右键单击,与浏览器实现不一致

时间:2013-04-10 11:48:51

标签: css cross-browser css-selectors pseudo-class

我刚注意到浏览器处理css的方式不一致:右键单击元素时的活动状态(contextmenu click)

  • Firefox ::激活不会被触发
  • Chrome ::暂时触发活动,直到发生mouseup
  • Safari 5& IE 10 ::触发活动并且元素保持:活动直到关闭上下文菜单

这是一个快速的方法来复制这个http://jsfiddle.net/annam/tqBqV/

div { background: red; }
div:active { background: green; }

任何人都知道哪种行为是正确的?我想有没有办法标准化?

1 个答案:

答案 0 :(得分:10)

Selectors 3表示:active在激活元素时为真,并且当按下主按钮时,通过鼠标等指针设备进一步定义激活:

  
      
  • :active伪类适用于用户激活元素的情况。例如,在用户按下鼠标按钮并释放它的时间之间。在具有多个鼠标按钮的系统上,:active仅适用于主要或主要激活按钮(通常为“左”鼠标按钮)及其任何别名。
  •   

如果辅助点击在特定浏览器中为了:active而激活某个元素,则该浏览器违反了规范(除非浏览器声称只实现CSS2.1,此限制是一成不变,但对于任何给定的浏览器都不是这样。)