svg元素的'display'属性如何影响鼠标事件?

时间:2013-12-16 09:55:30

标签: css svg mouseevent

我有像这样的HTML代码

<svg style="display:block">
</svg>

问题是svg元素无法捕获鼠标事件。 其他显示属性,如“内联块”,......会产生相同的效果。 使用“内联”属性,它可以捕获鼠标事件。 我想知道为什么以及如何解决它。 试试这个以便于理解

<!DOCTYPE html>
<html>
<body onmousedown="alert('body')">
<svg style="display:block" width="300" height="300" onmousedown="alert('svg1')"></svg>
<svg width="300" height="300" onmousedown="alert('svg2')"></svg>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

由于Chromium中存在错误,Chrome和Opera只会出现这种情况:https://code.google.com/p/chromium/issues/detail?id=379299(如果您检查其他浏览器,例如Firefox,您会发现它确实按预期工作。)

修复has been committed to the master branch,并且应该会在几个月内(2014年夏天结束)在这些浏览器的稳定版本中使用。

与此同时,您可以通过将<svg>包装在display: block容器元素中来解决此问题(具体取决于您的使用案例)。