【发布时间】:2013-05-29 03:38:26
【问题描述】:
我发现当 CSS3 缩放应用于小型 SVG 图标(9px:9px 缩放:1.5)时,SVG 图标可能会模糊。在这种情况下获得一个清晰干净的图标有什么想法吗?提前致谢。
SVG:
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
x="0px" y="0px" width="9px" height="9px" viewBox="0 0 9 9" enable-background="new 0 0 9 9">
<g>
<g fill="none" transform="translate(0.5, 0.5)">
<g stroke="#000000" stroke-width="0.5" stroke-linecap="square" >
<line x1="2" y1="4" x2="6" y2="4"/>
<line x1="4" y1="2" x2="4" y2="6"/>
</g>
<g stroke="#909090" stroke-width="1" stroke-linecap="square" >
<rect x="0" y="0" width="8" height="8"/>
</g>
</g>
</g>
</svg>
【问题讨论】:
-
哪个浏览器?某些浏览器在调整大小或缩放时不会重新计算 SVG。什么是 CSS3 缩放?你的意思是用浏览器放大吗?还是非标准的 IE 属性?
-
感谢您通知我的问题。这是CSS3 Zoom 的一些信息。大多数现代浏览器都广泛支持它。我正在 Chrome 和 Safari iOS 上尝试这个。
-
是的,这是非标准的。它可能只是缩放渲染元素而不重新计算。您是否尝试过使用比例变换功能?或者在最初显示原始 SVG 时可能会变大并缩小?
-
好吧,我自己找到了解决方案。添加: shape-rendering="crispEdges" 到 svg 就可以了。谢谢@DavidStorey。
标签: css svg antialiasing