html - 为什么为 SVG 声明 viewBox 与在具有适当尺寸的 SVG 元素的符号元素上声明它不同?
问题描述
所以,我有一个 617 单位宽和 617 单位长的 svg。因此,根据我目前对 svgs 工作原理的理解,我希望这样做:
<svg viewBox="0 0 200 300">
...
</svg>
将与以下结果相同:
<svg viewBox="0 0 617 617>
<symbol id="testSym" viewBox="0 0 200 300">
...
</symbol>
<use href="#testSym"></use>
</svg>
虽然结果相似,但它们确实不同。我只是好奇为什么?我认为,因为父 svg 的 viewBox 包含整个图形,所以使用“0 0 200 300”与仅用 svg 声明它是一样的。帮助理解这一点将不胜感激!
PS我知道在符号元素上定义viewBox通常并不聪明,我这样做只是为了了解svgs的工作原理。
解决方案
在第二种情况下,您定义视图框的方式会使 svg 缩小。ViewBox 应用于容器元素,内部的所有内容都将根据父元素进行绘制。
推荐阅读
- apache-kafka - 我遇到以下错误我尝试使用 Kafka 控制台生产者将大文件推送到 Kafka
- python - 使用 python 请求发送的类文件数据
- scala - 在何时访问数据框的列名
- node.js - 未找到 grpc@1.24.2 和 electron@7.1.2 的预构建二进制文件
- reactjs - 如何使用 react 和 redux 传递数据?
- database - Spring JPA 列未创建但调用有效
- google-sheets - 如何缩小图表/过滤掉“零”值,这样结果就不会被塞进一个很小的空间
- angular - 单击按钮时将变量从模板传递到Angular中的ts文件
- java - 将 2 个字符串与条件进行比较
- unity3d - 加载可寻址对象并使用 ContinueWith()