してLinearGradientをレンダリング私はその内部<rect>
とSVG
ブロックが別SVG
ブロック内linearGradient
を参照しfill
を使用して持っています。グラデーションの<stop>
の色は、<rect>
の不透明度0.8
とともにCSSで定義されています。Safariが予期せずに充填不透明で
OSXのSafariでは、グラデーションが貧弱になり、色が非常に洗い流されて(左)。 OSXのChromeでは、グラデーションが正しく表示されます(右)他のすべてのブラウザ/ OSの組み合わせは正しく動作します。私の場合は
svg #gradient > stop {
stop-opacity: 1;
}
svg #gradient > stop.from {
stop-color: #FBAD18;
}
svg #gradient > stop.to {
stop-color: #FFD81C;
}
svg g rect {
fill-opacity: 0.8;
}
<svg>
<g>
<rect width="100" height="100" fill="url(#gradient)"></rect>
</g>
</svg>
<svg width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="gradient" x1="100%" y1="0%" x2="0%" y2="0%" spreadMethod="pad">
<stop class="from" offset="0%"></stop>
<stop class="to" offset="100%"></stop>
</linearGradient>
</defs>
</svg>
サイドノート
、dc.js
は<rect>
上fill-opacity
CSS宣言の源です。他の宣言はプロジェクトにとってローカルです。