0

SVG で特定の度合いの CSS 線形グラデーションを再作成したいと考えています。

例えば:

linear-gradient(45deg, yellow,green)

svgでは幅と高さが分かれば再現できたのですが、流動的なグラデーションを作りたいです

私の最善の解決策は次のとおりです。

<svg xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid slice' viewBox='0 0 1 1'>
    <defs>
        <linearGradient id='g' x1="1"y1='0' y2='1' gradientTransform='rotate(45, .5, .5)'>
            <stop offset='0%' stop-color='green' />
            <stop offset='100%' stop-color='yellow' />
        </linearGradient>
    </defs>
    <rect x='0' y='0' width='100%' height='100%' fill='url(#g)'/>
</svg>

これにより、グラデーションのある正方形が作成され、正方形の側面が切り取られて、ビューポート内で可能な最大の正方形が作成されます。

しかし、css3仕様では、カラーストップは最も近いコーナーから始まりますが、私のソリューションでは、正方形が始まるところから始まります。

より良い解決策はありますか?

私はそれを明確に説明したことを願っています;)

4

1 に答える 1