链接的SVG在IE11中不是Antialias

时间:2014-12-29 23:29:51

标签: internet-explorer svg internet-explorer-11

我有一个客户端徽标的SVG,需要有一个标题颜色方案(白色为蓝色),页脚反色(蓝色为白色)。为了减少负载,我使用<svg>一个内联<symbol>元素,使用<svg><use xlink:href="#logo"/></svg>在两个位置引用它,然后使用CSS适当地设置每个版本的样式。

到目前为止,这么好。我只需要调用SVG一次,并且可以在两个地方对它进行不同的设置,没有任何问题。

然而,在IE11中检查此设置后,我看到链接的SVG看起来很糟糕。它似乎不是抗锯齿,而只是链接版本。

我已将SVG缩减为此示例的简化版本(并对客户端进行匿名化),但如果您在IE11中预览它,则you can see this behavior in a fiddle

以下是IE11中的行为的屏幕截图。左边的版本是我想要的代码,但是你可以看到与右边的完整SVG相比质量下降。

Linked SVG in IE11 on left, inline SVG in IE11 on right

有没有理由只为IE11(IE9和IE10正确渲染)这样做?我尝试将shape-rendering="geometricPrecision"shape-rendering="optimizeQuality"放在<svg>元素和<path>元素中,质量在IE11中不会改变。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:4)

如果您将源放在代码的顶部,它似乎正在工作。

像这样:

<svg style="display:none" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 90.44" xml:space="preserve" version="1.1">
<symbol id="logo">
    <defs>
        <clipPath clipPathUnits="userSpaceOnUse">
            <path d="m0 67.83 432 0L432 0 0 0 0 67.83Z" />
        </clipPath>
    </defs>
    <g transform="matrix(1.3333333,0,0,-1.3333333,0,90.436933)">
        <g clip-path="url(#clipPath16)">
            <g transform="translate(25.9522,0.5186)">
                <path d="m0 0c-11.91 4.19-25.95 13.63-25.95 27.69l0 28 2.56 1.2c14.27 6.65 32.15 10.42 47.85 10.42l4.44 0 0-39.62C28.9 13.63 14.86 4.19 2.95 0L1.47-0.52 0 0ZM-21.51 52.86C-10.12 58.17 7.13 62.87 24.46 62.87l0-35.18C24.46 16.11 12.05 7.91 1.47 4.19-9.1 7.91-21.51 16.11-21.51 27.69l0 25.17z" style="fill-rule:evenodd;" />
            </g>
            <g transform="translate(31.1309,54.8155)">
                <path d="M0 0C-0.02-0.01-0.05-0.02-0.07-0.03-0.05-0.02-0.02-0.01 0 0" class="s0" />
            </g>
            <g transform="translate(31.2388,54.8624)">
                <path d="M0 0C-0.04-0.01-0.07-0.03-0.11-0.05-0.07-0.03-0.04-0.01 0 0" class="s0" />
            </g>
            <g transform="translate(31.0625,54.7837)">
                <path d="M0 0C0 0 0 0-0.01 0 0 0 0 0 0 0" class="s0" />
            </g>
        </g>
    </g>
</symbol>
</svg>

<header>
<div>
    <a href="test.html"><svg viewBox="0 0 576 90.44">
        <use xlink:href="#logo"/>
    </svg></a>
</div>
<div>
    <svg viewBox="0 0 576 90.44">
        <use xlink:href="#logo"/>
    </svg>
</div>
</header>

<div class="clear"><!-- --></div>

<footer>
    <div>
    <a href="test.html"><svg viewBox="0 0 576 90.44">
        <use xlink:href="#logo"/>
    </svg></a>
</div>
<div>
    <svg viewBox="0 0 576 90.44">
        <use xlink:href="#logo"/>
    </svg>
</div>
</footer>