SVG radialGradient spreadMethod无法正确呈现

时间:2016-10-11 23:37:30

标签: html svg

我只是在学习SVG格式,并尝试使用reflect spreadMethod创建径向渐变,但我的浏览器(Chrome,Firefox,IE)似乎都渲染不正确。正如您在MDN gradients tutorial page的屏幕截图中所看到的,只有默认值Pad似乎有效。标题为“屏幕截图”的左侧是它们应该看起来的样式,右侧标题为“实时样本”是我的浏览器实际渲染它的方式。 repeatreflect具有坚硬的非渐变边缘。

Expected gradient vs. actual

它在我自己的尝试中也表现得这样。以下是“实时样本”中的代码:

<svg width="220" height="220" version="1.1" xmlns="http://www.w3.org/2000/svg">
    <defs>
        <radialGradient id="GradientPad" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="pad">
            <stop offset="0%" stop-color="red"></stop>
            <stop offset="100%" stop-color="blue"></stop>
        </radialGradient>
        <radialGradient id="GradientRepeat" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="repeat">
            <stop offset="0%" stop-color="red"></stop>
            <stop offset="100%" stop-color="blue"></stop>
        </radialGradient>
        <radialGradient id="GradientReflect" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="reflect">
            <stop offset="0%" stop-color="red"></stop>
            <stop offset="100%" stop-color="blue"></stop>
        </radialGradient>
    </defs>

    <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#GradientPad)"></rect>
    <rect x="10" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientRepeat)"></rect>
    <rect x="120" y="120" rx="15" ry="15" width="100" height="100" fill="url(#GradientReflect)"></rect>

    <text x="15" y="30" fill="white" font-family="sans-serif" font-size="12pt">Pad</text>
    <text x="15" y="140" fill="white" font-family="sans-serif" font-size="12pt">Repeat</text>
    <text x="125" y="140" fill="white" font-family="sans-serif" font-size="12pt">Reflect</text>

</svg>

导致这种情况的原因是什么?

0 个答案:

没有答案