html - 嵌套 SVG 会导致意外调整大小
问题描述
我正在尝试使用嵌套的内联 SVG,以便在 svg 容器中灵活地排列较小的 svg 图像。但是,我很难理解嵌套 SVG 大小的规则。
svg {
display: block;
}
为什么这会正确显示 200 像素 x 200 像素的红色正方形:
<svg width="200px" viewBox="0 0 100 100">
<rect width="100" height="100" fill="red" />
</svg>
但是为什么包裹在另一个 svg 元素中会导致正方形变成 150 像素 x 150 像素?
例如:
<svg>
<svg width="200px" viewBox="0 0 100 100">
<rect width="100" height="100" fill="red" />
</svg>
</svg>
或者:
<svg width="200px">
<svg width="200px" viewBox="0 0 100 100">
<rect width="100" height="100" fill="red" />
</svg>
</svg>
或者:
<svg width="200px">
<svg viewBox="0 0 100 100">
<rect width="100" height="100" fill="red" />
</svg>
</svg>
解决方案
您可以更改每个连续的width
和,但确保每次都保持相同的和每个嵌套的父级。height
<rect>
width
viewbox
<svg>
工作示例:
<svg width="200px" viewBox="0 0 200 200">
<rect width="200" height="200" fill="red" />
<svg width="200px" viewBox="0 0 200 200">
<rect width="100" height="100" fill="yellow" />
<svg width="200px" viewBox="0 0 200 200">
<rect width="50" height="50" fill="red" />
<svg width="200px" viewBox="0 0 200 200">
<rect width="25" height="25" fill="yellow" />
<svg width="200px" viewBox="0 0 200 200">
<rect width="12.5" height="12.5" fill="red" />
</svg>
</svg>
</svg>
</svg>
</svg>
推荐阅读
- python - 当使用python的值高于阈值时,突出显示谷歌电子表格中的列中的单元格
- python - Python循环未能检测到每个目录中某些文件的使用
- python - ttk 按钮不执行功能
- reactjs - > FormControl里面有多个InputBase组件
- javascript - 当我单击按钮内的元素时,onClick 函数不取值
- codeigniter-4 - 使用 Myth-auth 生成的哈希的 password_verify() 返回 false
- typescript - 如何让打字稿确定非安全的解构场景?
- java - 如何在 Java 中获取 PrintService 描述?
- c# - 引用几个类成员
- excel - 如何在 Excel 的一个单元格中应用多个(两个以上)条件?