stroke-dashoffset
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.
Свойство stroke-dashoffset CSS определяет смещение начальной точки отрисовки связанного с элементом SVG массива штрихов. При наличии, оно переопределяет атрибут элемента stroke-dashoffset.
Это свойство применяется к любым элементам SVG, представляющим формы или текстовое содержимое (см. stroke-dashoffset для полного списка), но как унаследованное свойство, оно может применяться к элементам, таким как <g>, и по-прежнему оказывать ожидаемое воздействие на штрихи дочерних элементов.
Синтаксис
/* Keyword */ stroke-dashoffset: none; /* Length and percentage values */ stroke-dashoffset: 2; stroke-dashoffset: 2px; stroke-dashoffset: 2%; /* Global values */ stroke-dashoffset: inherit; stroke-dashoffset: initial; stroke-dashoffset: revert; stroke-dashoffset: revert-layer; stroke-dashoffset: unset;
Значения
-
<number>Нестандартный -
Числовое значение в единицах SVG, размер которых определяется текущим пространством единиц. Приведенное значение, если оно отличается от
0, перемещает начальную точку от начала массива штрихов к другой точке внутри него. Таким образом, положительные значения будут казаться сдвигом шаблона чередования штрихов и пробелов назад, а отрицательные значения - сдвигом шаблона вперед. <length>-
Единицы пикселей обрабатываются так же, как и единицы SVG (см.
<number>, выше), а основанные на шрифтах длины, такие какem, рассчитываются относительно значения элемента SVG для размера текста; влияние других единиц длины может зависеть от браузера. Эффект сдвига для любого значения такой же, как и для значений<number>(см. выше). <percentage>-
Проценты относятся к нормализованной диагонали текущего представления SVG, которая рассчитывается как , а не к общей длине пути штриха. Отрицательные значения недопустимы.
Формальное определение
| Начальное значение | 0 |
|---|---|
| Применимо к |
<circle>, <ellipse>, <line>, <path>, <polygon>, <polyline>, и <rect> элементам в svg
|
| Наследуется | да |
| Проценты | относятся к нормализованному значению диагонали текущего представления SVG, применённого viewbox, или к самому представлению, если `viewBox` не указан |
| Вычисленное значение | абсолютная <length> или <percentage>, числа, сначала преобразованные в абсолютные длины |
| Тип анимации | по типу вычисленного значения |
Формальный синтаксис
stroke-dashoffset =
<length-percentage> |
<number>
<length-percentage> =
<length> |
<percentage>
Примеры
Смещение штрихов
Чтобы показать, как можно сместить штрихи, мы сначала создадим пять идентичных путей, всем из которых задан массив штрихов длиной 20 единиц, за которым следует разрыв в 3 единицы, с помощью атрибута SVG stroke-dasharray. (Это также можно было сделать с помощью свойства CSS stroke-dasharray.) Затем путям задаются индивидуальные смещения штрихов с помощью CSS.
<svg viewBox="0 0 100 50" width="500" height="250">
<rect x="10" y="5" width="80" height="30" fill="#EEE" />
<g stroke="dodgerblue" stroke-width="2" stroke-dasharray="20,3">
<path d="M 10,10 h 80" />
<path d="M 10,15 h 80" />
<path d="M 10,20 h 80" />
<path d="M 10,25 h 80" />
<path d="M 10,30 h 80" />
</g>
</svg>
path:nth-of-type(1) {
stroke-dashoffset: 0;
}
path:nth-of-type(2) {
stroke-dashoffset: -5;
}
path:nth-of-type(3) {
stroke-dashoffset: 5;
}
path:nth-of-type(4) {
stroke-dashoffset: 5px;
}
path:nth-of-type(5) {
stroke-dashoffset: 5%;
}
В порядке:
- Первому из пяти путей задано смещение ноль, что является поведением по умолчанию.
- Второму пути задано смещение
-5, что сдвигает начальную точку массива на пять единиц перед нулевой точкой. Визуальный эффект заключается в том, что шаблон штрихов и пробелов сдвигается вперед на пять единиц; таким образом, мы видим в начале пути последние две единицы штриха, а затем трех-единичный разрыв. - Третьему пути задано смещение
5, что означает, что начальная точка штрихов находится на расстоянии пяти единиц от начала шаблона штрихов. Визуальный эффект заключается в сдвиге шаблона штрихов назад на пять единиц; таким образом, мы видим в начале пути последние пятнадцать единиц штриха, за которыми следует трех-единичный разрыв. - Четвертому пути задано смещение
5px, которое имеет тот же эффект, что и значение5(см. выше). - Пятому и последнему пути задано смещение
5%, что очень похоже на предыдущие два примера, но не совсем то же самое. Проценты рассчитываются относительно диагонального размера представления SVG, и поэтому могут сильно зависеть от размера и соотношения сторон этого представления.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
stroke-dashoffset |
≤80 | ≤80 | ≤72 | 67 | ≤13.1 | 80 | 79 | 57 | ≤13.4 | 13.0 | 80 |
См. также
- Атрибут SVG
stroke-dashoffset - Свойство CSS
stroke-dasharray - Свойство CSS
stroke
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/stroke-dashoffset