gpt4 book ai didi

用于在 Firefox 中缩放背景 svg 的 css sprite

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:53 24 4
gpt4 key购买 nike

我想使用缩放的 svg 图像作为不同大小的图标,但在 firefox 中发现不一致的行为。

如果没有 css sprite,firefox 会对缩放后的图像进行抗锯齿处理。但是使用 css sprite,firefox 不会对它们进行抗锯齿处理。因此,使用 css sprite 图标看起来很丑。

请访问此jsfiddle了解详情。 firefox 有什么问题?

http://i.stack.imgur.com/lQ1oF.png

<!DOCTYPE html>
<html>
<head>
<style type='text/css'>
.whole {
width: 80px;
height: 80px;
background-image: url("outliner.svg");
background-size: 100% 100%;
}
i {
width: 16px;
height: 16px;
display: inline-block;
background-image: url("outliner.svg");
background-size: 500% 500%;
}
.circle { background-position: -32px 0;}
.disk { background-position: 0 -16px; }
</style>
</head>
<body>
<div>With CSS Sprite:</div>
<i class="circle"></i><i class="disk"></i>
<div>Without CSS Sprite:</div>
<i class="whole"></i>
</body>
</html>

最佳答案

目前,没有改变 SVG 元素渲染模式的 CSS 方法,尽管有一个 SVG 属性可以这样做: shape-rendering .

我继续并 ran your SVG file through a base64 encoder (您可以使用它来解码以下示例中的数据),在添加 shape-rendering: <value> 之后给你的每一个<g>元素,其中 <value>有几个选项: optimizeSpeed (example) , crispEdges (example) , 和 geometricPrecision (example) .

根据您希望最终 SVG 显示的方式,只需选择一个特定值,您的最​​终 SVG 代码将类似于以下内容(请注意每个 shape-rendering 标签上的 <g> 属性):

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="480" height="480" viewBox="0 0 480 480">
<g shape-rendering="crispEdges" stroke="#333" fill="#333">
<g shape-rendering="crispEdges" id="icon-1-1" transform="translate(0,0)">
<line x1="10" y1="10" x2="86" y2="86" stroke-width="12"/>
<line x1="10" y1="86" x2="86" y2="10" stroke-width="12"/>
</g>
<g shape-rendering="crispEdges" id="icon-1-2" transform="translate(96,0)">
<!-- svg continues below ... -->

关于用于在 Firefox 中缩放背景 svg 的 css sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com