Как справиться с привязкой пикселей SVG
Я пытаюсь сделать две строки SVG, используя элемент пути. Первая строка имеет ширину 1px и она резкая Вторая строка имеет ширину 2px и она размыта
Ширина хода одинакова для обоих. Как это исправить
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<path style="stroke-width:1;stroke:red;opacity:1;" d="M 300.5 250 L 300.5 300 "></path>
<path style=" stroke-width:1;stroke:red;opacity:1;" d="M 350 250 L 350 300 "></path>
</svg>
1 ответ
В основном это смещение 0,5, что делает линию резкой. По умолчанию целочисленные координаты отображаются на пересечения квадратов пикселей. Таким образом, горизонтальная / вертикальная линия шириной 1 центрируется на границе между рядами пикселей и продолжается на полпути в пиксели с обеих сторон.
Так что, чтобы исправить вторую строку, добавьте 0.5 к координатам или используйте стиль shape-rendering: crispEdges
, Обратите внимание, что crispEdges предотвращает сглаживание, поэтому горизонтальные / вертикальные линии выглядят четкими, но наклонные линии выглядят блочными.
Также штрих-ширина =1 не является допустимым синтаксисом CSS. Первый пример штрих-ширины: 1 имеет право.
Просто попробуйте переместить элемент SVG.
svg {
padding: .5px;
}