— SVG | MDN
<linearGradient>
позволяет определять линейные градиенты для заполнения или изменения графических элементов.
Примечание: Не путайте с CSS linear-gradient()
(en-US), CSS-градиенты могут быть применены только к HTML-элементам, тогда как SVG-градиент применим только к SVG-элементам.
html,body,svg { height:100% }
<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <linearGradient gradientTransform="rotate(90)"> <stop offset="5%" stop-color="gold" /> <stop offset="95%" stop-color="red" /> </linearGradient> </defs> <!-- using my linear gradient --> <circle cx="5" cy="5" r="4" fill="url('#myGradient')" /> </svg>
gradientUnits (en-US)
Определяет систему координат для атрибутов
,x2
,y1
,y2
Тип значения:userSpaceOnUse
|objectBoundingBox
; Значение по умолчанию:objectBoundingBox
; Анимируемый: даgradientTransform (en-US)
Этот атрибут обеспечивает дополнительное преобразование для системы координат градиента. Тип значения: <transform-list> (en-US) ; Значение по умолчанию: identity transform; Анимируемый: да
href (en-US)
Этот атрибут определяет ссылку на другой элемент
(en-US) ; Значение по умолчанию: none; Анимируемый: да<linearGradient>
, который будет использоваться в качестве шаблона. Тип значения: <URL>spreadMethod (en-US)
Этот атрибут указывает, как ведет себя градиент, если он начинается или заканчивается внутри границ фигуры, содержащей градиент. Тип значения:
pad
|reflect
|repeat
; Значение по умолчанию:pad
; Анимируемый: даx1 (en-US)
Этот атрибут определяет координату x начальной точки векторного градиента, вдоль которой рисуется линейный градиент. Тип значения: <length> (en-US) ; Значение по умолчанию
0%
; Анимируемый: даx2 (en-US)
Этот атрибут определяет координату x конечной точки векторного градиента, вдоль которой рисуется линейный градиент. Тип значения: <length> (en-US) ; Значение по умолчанию:
100%
; Анимируемый: даxlink:href (en-US)
Устарело: Эта возможность была удалена из веб-стандартов. Хотя некоторые браузеры по-прежнему могут поддерживать её, она находится в процессе удаления. Не используйте её ни в старых, ни в новых проектах. Страницы или веб-приложения, использующие её, могут в любой момент сломаться.
<IRI> (en-US) ссылка на другой<linearGradient>
элемент, который будет использоваться в качестве шаблона. Тип значения: <IRI> (en-US) ; Значение по умолчанию: none; Анимируемый: даy1 (en-US)
Этот атрибут определяет координату y начальной точки векторного градиента, вдоль которой рисуется линейный градиент. Тип значения: <length> (en-US) ; Значение по умолчанию:
0%
; Анимируемый: даy2 (en-US)
Этот атрибут определяет координату y конечной точки векторного градиента, вдоль которой рисуется линейный градиент. Тип значения: <length> (en-US)
0%
; Анимируемый: да
Глобальные атрибуты
- Основные атрибуты
Прежде всего:
id
- Атрибуты стилизации (en-US)
class
,style (en-US)
- Атрибуты событий
Глобальные атрибуты событий (en-US), Атрибуты событий элементов документа (en-US)
- Атрибуты презентации (en-US)
Прежде всего:
,clip-path (en-US)
,clip-rule (en-US)
,color (en-US)
,color-interpolation (en-US)
,color-rendering
,cursor (en-US)
,display (en-US)
fill
,fill-opacity
,fill-rule
,filter (en-US)
,mask (en-US)
,opacity (en-US)
,pointer-events (en-US)
,shape-rendering
,stroke
,stroke-dasharray (en-US)
,stroke-dashoffset
,stroke-linecap
,stroke-linejoin (en-US)
,stroke-miterlimit (en-US)
,stroke-opacity (en-US)
,stroke-width
,transform
,vector-effect (en-US)
,visibility (en-US)
- XLink атрибуты
xlink:href (en-US)
,xlink:title (en-US)
Градиент | |
Разрешённый контент | Любое количество следующих элементов, в любом порядке: Элементы описания <animate> , <animateTransform> (en-US), <set> (en-US), <stop> (en-US) |
Specification |
---|
Scalable Vector Graphics (SVG) 2 # LinearGradients |
BCD tables only load in the browser
with JavaScript enabled. Enable JavaScript to view data.Last modified: , by MDN contributors
Как создать линейный градиент в SVG
8 июля, 2022 11:50 дп 1 views | Комментариев нетDevelopment | Amber | Комментировать запись
Конечно, большую часть времени вы будете создавать SVG файлы с помощью Adobe Illustrator и других подобных инструментов, а не кодировать их вручную. И все же в SVG есть некоторые функции, которые сделают ваши изображения привлекательнее, и их очень легко реализовать вручную. Линейные градиенты — одна из таких функций.
Давайте рассмотрим на примере, как это работает. Будем учиться вот на этом изображении:
Вот так выглядит SVG-разметка для него (для простоты пути заменены троеточием).
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"> <style>. bones{fill:#ccc ;} .eye{fill:#666;}</style> <path d="..."/> <path d="..."/> <g> <path d="..."/> <path d="..."/> </g> </svg>
Теперь давайте взглянем на его версию с оранжевым градиентом:
Разметка этого изображения выглядит так. Обратите внимание на элементы defs, linearGradient и stop:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"> <style>.eye{fill:#F9EC31;}</style> <defs> <linearGradient x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" /> <stop offset="100%" /> </linearGradient> </defs> <g fill="url(#bones-gradient)"> <path d="..."/> <path d="..."/> </g> <g> <path d=". .."/> <path d="..."/> </g> </svg>
Давайте также попробуем создать градиент с несколькими цветовыми остановками и непрозрачностью. Также обратите внимание на использование fill-opacity для обработки глаз.
Разметка для него выглядит следующим образом:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"> <style>.eye{fill:#211533; fill-opacity: 0.5;}</style> <defs> <linearGradient x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" /> <stop offset="50%" /> <stop offset="100%" /> </linearGradient> </defs> <g fill="url(#bones-gradient)"> <path d="..."/> <path d="..."/> </g> <g> <path d="..."/> <path d="..."/> </g> </svg>
Последний пример – мы используем градиент под другим углом:
Вот его разметка:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"> <style>.eye{fill:#F9EC31;}</style> <defs> <linearGradient x1="0%" y1="0%" x2="50%" y2="100%"> <stop offset="0%" /> <stop offset="100%" /> </linearGradient> </defs> <g fill="url(#bones-gradient)"> <path d="..."/> <path d="..."/> </g> <g> <path d="...."/> <path d="..."/> </g> </svg>
Как видите, создать линейный градиент в SVG довольно легко.
Читайте также: Как создать радиальный градиент в SVG
Tags: SVGВращение градиента
Svg –
спросил
Изменено 1 год, 11 месяцев назад
Просмотрено 472 раза
У меня возникли проблемы с созданием двух разных градиентов svg.
Первый должен быть:
а второй такой же, но его нужно чередовать с другими 90° (т.е. 30 + 90 = 120):
:
Итак, первый переходит от золотого к красному с остановкой на 90%, и его нужно повернуть на 30°. Первый переходит от золотого к красному с остановкой на 90% и должен быть повернут на 30°.
Не работает. Я также пытался использовать центр вращения, но ничего не работает. Что мне не хватает?
- svg
- градиент
- linear-gradients
Градиенты в SVG описываются указанием начальной и конечной точек. В вашем градиенте отсутствуют значения атрибутов, поэтому используются значения по умолчанию: x1="0%" y1="0%" x2="100%" y2="0%"
. Вы можете указать явные значения и пропустить преобразование:
Если вы используете поворот, укажите его центр, потому что по умолчанию он находится в (0,0), верхнем левом углу ограничивающей рамки. Обратите внимание, что числа должны быть безразмерными и находиться в диапазоне 0…1:
Написанный таким образом градиент имеет неявный атрибут по умолчанию gradientUnits="objectBoundingBox"
. Все числа интерпретируются относительно ограничивающей рамки элемента, на котором они используются (круг). Это позволяет повторно использовать один и тот же градиент в нескольких местах, каждый раз перебирая цвета от начала до конца.
Если вы предпочитаете использовать числа в той же системе координат, что и элемент, в котором они используются, установите gradientUnits="userSpaceOnUse"
и используйте безразмерные числа. Но это означает, что если вы окрашиваете несколько элементов одним и тем же градиентом, их начальная и конечная точки не будут адаптироваться — другими словами, градиент будет распространяться на элементы.
4
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
javascript — Цвет градиента SVG
спросил
Изменено 2 года, 10 месяцев назад
Просмотрено 389 раз
Привет, я работаю с SVG, здесь я пытаюсь добавить градиент в SVG вот так
белый и серый градиент, но я не смог добиться желаемого результата. Может кто-то указать мне верное направление.
- javascript
- html
- css
- svg
- холст
5
Тонкая настройка рендеринга оттенков серого и белого цветов зависит от того, какую видеокарту, браузер и операционную систему вы используете.
Поэтому высылаю несколько вариантов. Вы можете использовать любой вариант, который вам больше по душе или немного подкорректировать под себя, изменив цвета.
2# вариант
3# вариант
Для более точной настройки на свой вкус лучше использовать стоп-цвет
и стоп-непрозрачность
выбор значений.
Update
Чтобы метод spreadMethod ="repeat"
начал работать в вашем примере, вам нужно уменьшить охват градиента в три раза. Для этого задаем x1="0" y1="0" x2="0" y2="0.33"
В результате, подстраивая цветовые тона одной волны, получаем полностью идентичные ее копии, что облегчает процесс по сравнению с вариантом большого количества стоп-смещение