我创建了一个SVG,它的作用类似于页面上的<hr>
。它应该能够与其容器的宽度成比例地缩放(例如页面宽度),包括开始和结束<marker>
元素。这在Chrome中可以正常工作,但在Safari中,标记会改变大小。我的SVG语法有什么问题吗?
这是我的svg代码和一个codepen的链接。
<svg viewBox='0 0 300 4' xmlns="http://www.w3.org/2000/svg">
<defs>
<marker
id='diamond'
viewBox='0 0 10 10'
refX="5"
refY="5"
markerWidth="6"
markerHeight="6">
<polygon points="0,5 5,0 10,5 5,10" fill="#9A8654" />
</marker>
</defs>
<line x1='1' y1='2' x2='299' y2='2' stroke='#9A8654' stroke-width='1' vector-effect="non-scaling-stroke" stroke-dasharray='2 2' marker-start='url(#diamond)' marker-end='url(#diamond)'/>
</svg>
当在actual site上使用时,标记在Safari中甚至更破碎和水平拉伸,但我希望修复基本问题将解决其他问题。
我也试过preserveAspectRatio="none"
没有任何运气。
1条答案
按热度按时间tnkciper1#
我能够使用一些值的百分比来解决这个问题。我不得不为开始和结束做不同的标记,因为没有办法正确地定位它们,否则。