【发布时间】:2019-05-16 02:12:43
【问题描述】:
我有以下 SVG 文件:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
width="100%" height="19">
<rect x="0" y="0" width="100%" height="100%" fill="black" />
<text font-size="13" font-family="monospace" x="3" y="13" fill="#b2b2b2">Hello world</text>
</svg>
如果我直接在 Firefox 中查看该文件,它看起来不错:
但是,如果我使用 <img> 标记将其包含在页面中,它会显得被压扁。
<html>
<body>
<img src="screenshot.svg" width="100%">
</body>
</html>
我希望黑色背景缩放以覆盖整个宽度,同时文本保持未压扁。我已经尝试了我能想到的viewBox 和preserveAspectRatio 的所有排列,但它们似乎都没有达到预期的效果。 Chrome 似乎可以正常显示。
【问题讨论】:
-
如果您使用
px单位而不是pt会发生什么? -
@ccprog 好问题,但它似乎没有任何效果。我将所有内容都转换为像素以简化问题。
-
我无法重现该效果(在 Windows/63 和 Linux/60esr 上),但我可以看到 Windows 上的抗锯齿计算的差异很小,具体取决于所使用的字体。浏览器使用什么字体?
-
这里有一个有趣的观察:如果我使用 Ctrl + 来放大屏幕上的显示,宽度和高度之间的缩放是不均匀的。您是否使用了高密度屏幕,因此 px 值会被预乘?
-
不要忘记从 html 正文中删除边距。