【发布时间】:2017-08-30 19:19:47
【问题描述】:
我想如果我从 svg 中省略 viewBox 属性,它会被假定为 viewBox="0 0 100 100"。我尝试了两个测试:
- 带有viewBox属性:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="svg-triangle" width='100' height='100'>
<path d="M 50,5 95,97.5 5,97.5 z"/>
</svg>
- 没有 viewBox 属性
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="svg-triangle" width='100' height='100' viewBox="0 0 100 100">
<path d="M 50,5 95,97.5 5,97.5 z"/>
</svg>
由于两个结果相同,我认为我的猜测是正确的。如果从 svg 中省略,请提供一些参考来解释 viewBox 属性的默认值是什么。
【问题讨论】:
-
没有默认值,没有 viewBox 的 svg 的显示不能被任何 viewBox 值复制。使用 viewBox svg 内容将随其容器缩放,没有它则不会。
-
@RobertLongson 没有
viewBox标签并且没有指定任何宽度或高度,svg 的默认宽度和高度是多少?我总是得到 300x150 svg。 -
正确,这是默认设置。
-
@RobertLongson 我还注意到,使用
viewBox标记时,svg 会占用其容器的 100% 宽度,即使它的显示为inline。这是为什么呢? -
因为这就是 SVG 规范所说的应该发生的事情。与您观察到的所有其他事物相同。