使用CSS的SVG渐变
我正在尝试获取应用于SVG rect
元素的渐变。
目前,我正在使用fill
属性。 在我的CSS文件中:
rect { cursor: pointer; shape-rendering: crispEdges; fill: #a71a2e; }
当在浏览器中查看时, rect
元素具有正确的填充颜色。
但是,我想知道是否可以对此元素应用线性渐变?
只要在CSS中使用,就可以在fill
属性中使用。 当然,这需要您在SVG的某个地方定义了线性渐变。
这是一个完整的例子:
rect { cursor: pointer; shape-rendering: crispEdges; fill: url(#MyGradient); }
<svg width="100" height="50" version="1.1" xmlns="http://www.w3.org/2000/svg"> <style type="text/css"> rect{fill:url(#MyGradient)} </style> <defs> <linearGradient id="MyGradient"> <stop offset="5%" stop-color="#F60" /> <stop offset="95%" stop-color="#FF6" /> </linearGradient> </defs> <rect width="100" height="50"/> </svg>
以下是如何在目标元素上设置linearGradient :
$output = '<style type="text/css"> path{fill:url(\''.$_SERVER['REQUEST_URI'].'#MyGradient\')} </style> <defs> <linearGradient id="MyGradient"> <stop offset="0%" stop-color="#e4e4e3" ></stop> <stop offset="80%" stop-color="#fff" ></stop> </linearGradient> </defs>';