我希望标题足够准确,可以描述我所面临的问题。
我有一个div
(尝试了多种不同的东西:a
, span
, button
, 都面临同样的问题)当它被点击时 onclick 事件不会触发,即使 cssdiv:active
会被调用。
这似乎是由于在div:active
我设置top: 6px
中做出“下推”之类的效果。效果看起来不错,只是有时,如果您单击元素的顶部,或者由于某种原因在中心单击,div 会显得“移出”而不是调用 onclick 事件。
我认为一个好的解决方案是将元素包装在另一个 div 中,然后将 onclick 事件附加到该 div。但令我惊讶的是,点击仍然没有向按钮的顶部或中间触发。
top: 6px
如果我在底部删除div:active
,按钮工作正常,它只是没有相同的“推入”效果。
我发现它有点难以解释,所以这是一个屏幕截图(蓝色区域是 onclick 不会触发的地方):
这是最初尝试的代码:http: //jsfiddle.net/RS5Q5/6/
以及将 onclick 侦听器移到外面的代码:http: //jsfiddle.net/RS5Q5/4/(onclick 将在 div 中的任何地方触发,除了图片上的蓝色部分)
还值得注意的是,中间和底部的蓝色区域在 Firefox 中似乎可以点击,但不是 chrome 或 safari。顶部的蓝色区域仍然是一个问题。
对这种奇怪的行为有任何修复或解释吗?任何指导将不胜感激。谢谢你。