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