Установка ширины штриха: 1 для элемента <rect>
в SVG помещает штрих на каждую сторону прямоугольника.
Как разместить ширину штриха только на трех сторонах прямоугольника SVG?
Установка ширины штриха: 1 для элемента <rect>
в SVG помещает штрих на каждую сторону прямоугольника.
Как разместить ширину штриха только на трех сторонах прямоугольника SVG?
Если вам нужен штрих или нет, вы также можете использовать stroke-dasharray для этого совместите штрихи и пробелы со сторонами прямоугольника.
rect { fill: none; stroke: black; }
.top { stroke-dasharray: 0,50,150 }
.left { stroke-dasharray: 150,50 }
.bottom { stroke-dasharray: 100,50 }
.right { stroke-dasharray: 50,50,100 }
<svg height="300">
<rect x="0.5" y="0.5" width="50" height="50" class="top"/>
<rect x="0.5" y="60.5" width="50" height="50" class="left"/>
<rect x="0.5" y="120.5" width="50" height="50" class="bottom"/>
<rect x="0.5" y="180.5" width="50" height="50" class="right"/>
</svg>
См. jsfiddle.
stroke-dasharray
для объекта, определяющего, какие границы должны отображаться. Чтение кода может помочь вам понять, как это работает: codepen.io/lazd/pen/WNweNwy. ?редакторы=1010
- person lazd; 02.08.2020
Вы не можете изменить визуальный стиль различных частей одной фигуры в SVG (отсутствие еще недоступного Векторные эффекты). Вместо этого вам нужно будет создать отдельные формы для каждого штриха или другого визуального стиля, который вы хотите изменить.
Специально для этого случая вместо использования элемента <rect>
или <polygon>
вы можете создать элемент <path>
или <polyline>
, который покрывает только три стороны прямоугольника:
<!-- Move to 50,50 then draw a line to 150,50, to 150,150, and then to 50,150 -->
<path d="M50,50 L150,50 150,150 50,150" />
<polyline points="50,50 150,50 150,150 50,150" />
Вы можете увидеть их эффект в действии здесь: http://jsfiddle.net/b5FrF/3/
Для получения дополнительной информации прочитайте об <polyline>
и более мощных -но-более-запутанные <path>
формы.
Вы можете использовать полилинию для трех обведенных сторон и просто не наносить обводку на прямоугольник. Я не думаю, что SVG позволяет применять разные штрихи к разным частям контура/фигуры, поэтому вам нужно использовать несколько объектов, чтобы получить одинаковый эффект.