【发布时间】:2015-12-10 14:15:03
【问题描述】:
据我了解,CSS 过滤器 should work 在 Chrome 中的任何位置,但我未能将它们应用于 SVG 元素。
这在所有大多数浏览器中都可以正常工作:
div{ filter:sepia(50%) }
但是,这在 Chrome 中不起作用:
rect{ filter:sepia(50%) }
这是一个例子:
div{
width:100px;
height:50px;
background-color:red;
}
rect{
fill:red;
}
rect:hover, div:hover{
-webkit-filter:sepia(50%);
-moz-filter:sepia(50%);
filter:sepia(50%);
}
<h2>SVG</h2>
<svg width="100" height="50">
<rect x="0" y="0" width="100" height="50"/>
</svg>
<h2>DIV</h2>
<div></div>
...这是一个小提琴:https://jsfiddle.net/LtffLagn/2/
【问题讨论】:
-
您想定位特定的
rect还是定位整个 svg 就足够了?据我所知,svg:hover会起作用。 -
@timo 我需要针对特定的 SVG 元素。
-
那么你需要使用 SVG 过滤器而不是 CSS 过滤器,因为 CSS 过滤器还不能应用于 Chrome 中的 SVG 内容。