Html 如何创建具有统一笔划宽度的SVG多边形?
我试图创建一个SVG多边形,在元素周围有一个边框(或者在本例中是一个笔划)。这在大多数情况下都有效,但是多边形的剪裁边的笔划似乎比其他边的笔划更厚。是否有办法确保笔划宽度在形状周围均匀 这是一张说明问题的图片 左上和右下边缘的笔划明显比其他边或边缘厚 代码基本上是这样的Html 如何创建具有统一笔划宽度的SVG多边形?,html,css,svg,geometry,Html,Css,Svg,Geometry,我试图创建一个SVG多边形,在元素周围有一个边框(或者在本例中是一个笔划)。这在大多数情况下都有效,但是多边形的剪裁边的笔划似乎比其他边的笔划更厚。是否有办法确保笔划宽度在形状周围均匀 这是一张说明问题的图片 左上和右下边缘的笔划明显比其他边或边缘厚 代码基本上是这样的 笔划的宽度确实是4单位,但它被viewbox剪裁了。请记住,笔划沿其路径居中,而不是与一侧对齐 …因此,如果您有一个01100100的视图框,并且有一条从(0,0)到(0100)的线或路径,您给它一个7px的笔划,然后,只有该
笔划的宽度确实是
4
单位,但它被viewbox剪裁了。请记住,笔划沿其路径居中,而不是与一侧对齐
…因此,如果您有一个01100100
的视图框,并且有一条从(0,0)
到(0100)
的线或路径,您给它一个7px的笔划,然后,只有该笔划宽度的3.5px
可见,因为另一半将存在于x=-3.5px
和x=0
之间
如果增加视图框的大小和/或移动多边形
,使其点距离视图框侧面至少4
“单位”,则完整路径将可见:
(它是4
“单位”,而不是4px
,因为是无单位宽度(如笔划宽度:4;
)-因此您可能需要向笔划宽度
属性添加显式单位,以实现一致的渲染
笔划的宽度实际上是4
单位,但它被viewbox剪裁。请记住笔划沿其路径居中,而不是与一侧对齐
…因此,如果您有一个0 100 100
的视图框,并且有一条从(0,0)
到(0100)的线或路径
给它一个7px
的笔划,那么只有该笔划宽度的3.5px
可见,因为另一半存在于x=-3.5px
和x=0
之间
如果增加视图框的大小和/或移动多边形
,使其点距离视图框侧面至少4
“单位”,则完整路径将可见:
(它是4
“单位”,而不是4px
,因为是无单位宽度(如笔划宽度:4;
)-因此您可能需要向笔划宽度
属性添加显式单位,以实现一致的渲染
无单位宽度是画布大小的%”这一说法不正确。无单位宽度假定为userSpaceOnUse单位,即通过当前变换堆栈进行调整的viewBox单位。详细信息:。在这种情况下,它仅为4%,因为viewBox已将0-100作为水平轴的比例,这只会发生在SVG 1.1中,只有两种单元类型——userSpaceOnUse和objectBoundingBox以及其他单元类型(pt、vh等)仅支持调整SVG元素本身的大小。@MichaelMullany谢谢您的反馈!我已更新了我的答案。您不正确,无单位宽度是画布大小的%。无单位宽度假定为userSpaceOnUse单位,即视框单位,由当前变换堆栈调整。详细信息:。在本例中-它仅为4%,因为viewBox已将0-100作为水平轴的比例,这恰好对应于4%。在SVG 1.1中,只有两种单位类型—userSpaceOnUse和objectBoundingBox以及其他单位类型(pt、vh等)只支持调整SVG元素本身的大小。@MichaelMullany谢谢您的反馈!我已经更新了答案。