HTML 中的内联 SVG - 相同的字体大小渲染得更大

Inline SVG in HTML - same font-size rendered bigger

我刚开始看SVG Essentials这本书,示例2-2中有些地方我不明白。 "Inline SVG within an HTML file".

"Look Ma, Same Font!" 文本的字体大小比 "And here is regular HTML again..." 的字体大,而两者的样式相同,实际上没有样式并使用默认值。这是示例中的代码(也是 see here):

<head>
    <style>
        svg {
          display:block;
          width:500px;
          height:500px;
          margin: auto;
          border: thick double navy;
          background-color: lightblue;
        }
        body {
          font-family: cursive;
        }
        circle {
          fill: lavender;
          stroke: navy;
          stroke-width: 5;
        }
        </style>
    </head>
    <body>
        <h1>Inline SVG in HTML Demo Page</h1>
        <svg viewBox="0 0 250 250" xmlns="http://www.w3.org/2000/svg">
            <title>An SVG circle</title>
            <circle cx="125" cy="125" r="100"/>
            <text x="125" y="125" dy="0.5em" text-anchor="middle">Look Ma, Same Font!</text>
        </svg>
        <p>And here is regular HTML again...</p>
    </body>
</html>

知道我在这里遗漏了什么吗?

viewBox 有效地将内容的大小加倍。可见区域为 500 x 500 像素(在 CSS 中设置),但您将 250 x 250 单位区域放大到 500 x 500 像素的框中。

好吧,显然我应该继续阅读下一章。

答案是“视口的用户坐标”——这些会影响 SVG 的渲染方式。具体来说,将 viewBox 设置为 SVG viewport 的一半会使图像看起来大一倍...