【发布时间】:2012-08-08 00:47:53
【问题描述】:
当我在这样的背景属性中使用 SVG 时:
.svg-button {
-webkit-transform: scale(3.0) // root of the problem!
background: url(Button.svg) no-repeat;
width: 32px;
height: 32px;
}
结果我得到了模糊的图像。同时这种风格的标签中的文字是清晰的。此外,如果我使用 CTRL++(浏览器缩放)而不是转换属性来缩放页面,那么一切都很清楚。
如果我在以下位置替换 CSS 背景属性:
<object type="image/svg+xml" data="Button.svg" width="32" height="32"></object>
在任何情况下,图像在任何比例下都是清晰的。
问题出在哪里?
jsfiddle 上的示例
更新: 我找到了有关此问题的更多信息:
- StackOverflow question
- Bug ticket for Chrome(我在 Safari/Chrome/IE9/10 下进行了测试,结果是一样的。
【问题讨论】:
-
SVG 背景作为 CSS 背景很遗憾只有 Opera 和 Webkit 浏览器支持。你试过
background-size: 300%;而不是变换背景吗? -
这只是示例。在实际情况下,我对层次结构的根应用了转换。
-
如果您发布一个包含必要文件的 jsfiddle 会有所帮助,这样人们就可以确切地看到什么是/不工作,并“摆弄”它。
-
@feeela 所有最近的浏览器都支持 SVG 作为 CSS 背景,请参阅 caniuse.com/#feat=svg-css