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

ann*_*.mi 7 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; }
Run Code Online (Sandbox Code Playgroud)

谁知道哪个是正确的行为?我猜有没有办法标准化?

Bol*_*ock 11

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

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

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

  • 我在这里提交了一个 Chrome 错误:https://bugs.chromium.org/p/chromium/issues/detail?id=966255 (2认同)