【发布时间】:2019-10-09 23:54:22
【问题描述】:
我使用一些基本的 javascript 和字符串连接生成了 SVG 元素:http://jsfiddle.net/8d3zqLsf/3/
这些 SVG 元素之间的间距非常小(最大 1 像素),并且彼此之间的距离在可接受的范围内。
当我复制生成的 SVG 并将其渲染为正常 DOM 的一部分而不是在页面加载时生成时,SVG 元素之间的间距很奇怪。 http://jsfiddle.net/1n73a8yr/
注意:我已验证 SVG 仅与其中的形状一样宽,因此额外的空间不是来自 SVG。
为什么 SVG 在页面加载时注入与作为 DOM 的一部分呈现时呈现不同?有没有一种方法可以解决这个问题,而无需在 svgs 上使用负像素值的左 css 属性?
HTML:
<div>
<svg width="86.60254037844386" height="100"> <polygon xmlns="http://www.w3.org/2000/svg" id="0" style="fill:#6C6;" points="86.60254037844388,25.000000000000004 86.60254037844388,75 43.30127018922193,100 -7.105427357601002e-15,75 -7.105427357601002e-15,25.000000000000014 43.301270189221924,0 "></polygon></svg>
<svg width="86.60254037844386" height="100"> <polygon xmlns="http://www.w3.org/2000/svg" id="0" style="fill:#6C6;" points="86.60254037844388,25.000000000000004 86.60254037844388,75 43.30127018922193,100 -7.105427357601002e-15,75 -7.105427357601002e-15,25.000000000000014 43.301270189221924,0 "></polygon></svg>
<svg width="86.60254037844386" height="100"> <polygon xmlns="http://www.w3.org/2000/svg" id="0" style="fill:#6C6;" points="86.60254037844388,25.000000000000004 86.60254037844388,75 43.30127018922193,100 -7.105427357601002e-15,75 -7.105427357601002e-15,25.000000000000014 43.301270189221924,0 "></polygon></svg>
</div>
CSS
svg {
display:inline-block;
margin-left:0px;
margin-right:0px;
padding-left:0px;
padding-right:0px;
}
【问题讨论】: