用于设置 SVG 元素样式的 CSS 3 渐变
是否可以使用 CSS3 渐变来设置填充属性的样式?
我知道 SVG 提供了自己的渐变。但对我来说理想的解决方案是:
.button{
fill:#960000;
fill: -webkit-gradient,linear,left bottom,left top,
color-stop(0.45, #37304C),color-stop(0.73, #534D6B));
fill: -moz-linear-gradient(center bottom,#37304C 45%,#534D6B 73%);
...
}
当我尝试使用 SVG 渐变时,当我尝试将样式属性提取到外部样式表时,我陷入了困境。似乎 fill:url(#linearGradientXYZ) 不起作用,因为渐变是在 .svg 文件中定义的。
Is it possible to use CSS3 gradients for styling fill property?
I know that SVG provides their own gradients. But the ideal solution for me would be:
.button{
fill:#960000;
fill: -webkit-gradient,linear,left bottom,left top,
color-stop(0.45, #37304C),color-stop(0.73, #534D6B));
fill: -moz-linear-gradient(center bottom,#37304C 45%,#534D6B 73%);
...
}
When I tried to use SVG gradients, I got stucked when I tried to extract style attribute to external stylesheet. It seemed that fill:url(#linearGradientXYZ) didn't work as the gradient was defined in .svg file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,目前还无法对 fill 属性使用 CSS3 渐变。不过好消息是 CSS 和 SVG 工作组正在讨论它,并且 SVG.next 将依赖于 CSS3 图像值(它定义了 CSS 渐变语法)。请参阅http://www.w3.org/2011/07/ 29-svg-分钟.html#item08。
请注意,默认情况下
fill:url(...)
的基本 url 是包含此规则的文件。因此,如果您想将 fill:url(#linearGradientXYZ) 移动到外部样式表,请记住添加包含该渐变定义的文件的完整路径,例如:填充:url(../images/gradients.svg#linearGradientXYZ)
。No it's not yet possible to use CSS3 gradients for the fill property. The good news though is that it's being discussed by the CSS and SVG workgroups, and SVG.next will depend on CSS3 Image Values (which defines the CSS gradient syntax). See http://www.w3.org/2011/07/29-svg-minutes.html#item08.
Note that the base url for the
fill:url(...)
by default is the file that contains this rule. So if you want to movefill:url(#linearGradientXYZ)
to an external stylesheet remember to add the full path to the file containing that gradient definition, eg.fill:url(../images/gradients.svg#linearGradientXYZ)
.