В настоящее время строит SVG-приложение на основе браузера. В этом приложении пользователь может стилизовать и позиционировать различные формы, включая прямоугольники.
Когда я применяю a stroke-width
к rect
элементу SVG, скажем 1px
, обводка применяется к rect
смещению и вставке по-разному в разных браузерах. Это оказывается проблематичным, особенно когда я пытаюсь вычислить внешнюю ширину и визуальное положение прямоугольника и расположить его рядом с другими элементами.
Например:
- Firefox добавляет вставку в 1 пиксель (внизу и слева) и смещение в 1 пиксель (вверху и справа)
- Chrome добавляет вставку в 1 пиксель (вверху и слева) и смещение в 1 пиксель (внизу и справа)
Мое единственное решение до сих пор состояло бы в том, чтобы нарисовать фактические границы самостоятельно (возможно, с помощью path
инструмента) и расположить границы за обведенным элементом. Но это решение - неприятный обходной путь, и я бы предпочел не идти по этому пути, если это возможно.
Итак, мой вопрос, можете ли вы контролировать, как SVG stroke-width
рисуется на элементах?
paint-order
параметр, в котором вы можете указать, что заливка должна отображаться поверх обводки, поэтому вы получите «внешнее выравнивание», см. Jsfiddle.net/hne0kyLg/1