<a>
个:active
状态元素
mousedown
事件并因某些原因致电event.preventDefault()
:):active
:active
。以下是对此案的测试: http://jsbin.com/azajex/4
在W3C上没有深刻的描述,必须考虑什么active
以及什么时候。
但除了FF之外,所有浏览器(可能不是全部?)首先通过CSS引擎处理mousedown并将元素呈现为:active
。这似乎是一个很长时间的问题,我在FF 3.6,8.0,13.0中测试了这个案例 - 所有版本的行为完全一样。
那么,在这种情况下浏览器的正确行为是什么?
答案 0 :(得分:2)
没有'正确行为'。这取决于浏览器的实现,不应该依赖它。这称为undefined behavior。在软件工程中,不应该依赖未定义的行为,因为它没有真正的文档,结果也不可验证。
CSS没有定义哪些元素可能处于上述状态[伪类:: hover,:active和:focus],或者如何输入和保留状态。脚本可以改变元素是否对用户事件做出反应,并且不同的设备和UA [浏览器]可能具有指向或激活元素的不同方式。 - W3C CSS Selectors