小编chr*_*Brd的帖子

SVG“viewbox”应该在“symbol”中定义一次,还是每次“使用”SVG 时定义?

根据我读过的一些教程插入 SVG 时,只需在标签中定义一次<symbol>属性。<use>viewBox<symbol>

这名义上工作正常,但是元素的内容以相当大的系数<use>溢出父元素<svg>(显然总是父 sv​​g 元素大小的比例,尽管它似乎根据 CSS 样式而变化)。这似乎不会导致任何实际问题(溢出是隐藏的,因此没有不需要的滚动条或布局问题),但不知何故感觉“错误”。

然后是去年提出的一个问题viewbox的答案,该问题建议从<symbol>元素中完全删除该属性并在标签中声明它<svg>。以这种方式进行操作意味着所有内容都会按其应有的方式 100% 显示,但从我收集到的有关该标签的好处之一来看,<symbol>它应该意味着viewbox只需要声明一次,而不是在每次插入时都需要声明。

我制作了一个JSFiddle来尝试比较不同的用例。

有没有正确的做事方法?这种溢出是正常的并且可以忽略吗?或者我做的事情根本就是错误的吗?

编辑:看起来当viewbox仅在其中设置属性时<symbol>,它也会放大整个父 svg 标签。是否应该为每个显式设置 SVG 尺寸use

html svg

5
推荐指数
1
解决办法
1274
查看次数

标签 统计

html ×1

svg ×1