высота viewBox равна 200, а высота svg равна height="2px"
.width
и height
элемента svg не пропорциональны размеру viewBox
.
Одним из решений будет удаление высоты вашего элемента svg:
svg{border:1px solid;}
<svg width="357" viewBox="0 0 300 200" >
<line x1="40" x2="260" y1="100" y2="100" stroke="red" stroke-width="20" stroke-linecap="round" stroke-dasharray="1, 30"/>
</svg>
Другим решением будет изменение значения высоты viewBox
, чтобы сделать ее пропорциональной width
и height
элемента.вам нужно изменить вертикальное положение линии, так как в противном случае зубец будет нарисован за пределами viewBox
.В этом случае строка выше поля, поэтому вам нужно добавить svg{overflow:visible}
svg{overflow:visible;border:1px solid;}
<svg width="357" height="20" viewBox="0 0 300 16.8" >
<line x1="40" x2="260" y1="8.4" y2="8.4" stroke="red" stroke-width="20" stroke-linecap="round" stroke-dasharray="1, 30"/>
</svg>