当我将stroke-width应用于SVG的rect元素时,例如1px,不同的浏览器以不同的方式应用于rect的偏移和插入。这证明是麻烦的,尤其是当我尝试计算矩形的外部宽度和视觉位置,并将其放置在其他元素旁边时。
例如:
- Firefox在底部和左侧添加1px的插入,顶部和右侧添加1px的偏移。 - Chrome在顶部和左侧添加1px的插入,底部和右侧添加1px的偏移。
到目前为止,我唯一的解决方案可能是自己绘制实际的边框(可能使用路径工具),并将边框放在描边元素后面。但这个解决方案是一个不愉快的权宜之计,如果可能的话,我宁愿不走这条路。
所以我的问题是,你能控制SVG的stroke-width如何在元素上绘制吗?
paint-order
的参数,您可以在其中指定填充应该呈现在描边的顶部,这样您就会得到 "外部对齐",请参见 https://jsfiddle.net/hne0kyLg/1/。 - Ivan Kuckirpaint-order
属性(Chrome 正在进行 SVG 2 实现,详情请见此处)。 - Mahozad