В SVG есть два типа градиентов: линейный и радиальный. Пример реализации линейного градиента:
Линейный градиент определяется в контейнере defs с помощью элемента linearGradient. Чтобы потом можно было назначить градиент конкретной фигуре для определения градиента задается атрибут id. Назначить градиент фигуре можно указав id градиента как значение атрибута fill фигуры.
Сам градиент определяется неким набором контрольных точек - стопов. Похоже на Photoshop (ну в принципе во всех графических редакторах это делается одинаково). Только в Photoshop'e это делается визуально через GUI, а здесь задается текстово. Для каждого стопа можно указать цвет, прозрачность, смещение...
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN" "http://www.w3.org/TR/2000/CR-SVG-20001102/DTD/svg-20001102.dtd"> <svg width="100%" height="100%"> <defs> <linearGradient id="gradientDefinition" gradientUnits="userSpaceOnUse"> <stop stop-color="yellow" stop-opacity=".2" offset="0%"/> <stop stop-color="black" offset="100%"/> </linearGradient> </defs> <rect x="60" y="60" width="400" height="200" stroke-width="4" stroke="red" stroke-dasharray="2 2 2 2" fill="black"/> <rect x="50" y="50" width="400" height="200" stroke-width="4" stroke="red" stroke-dasharray="2 2 2 2" fill="url(#gradientDefinition)"/> </svg>
Линейный градиент определяется в контейнере defs с помощью элемента linearGradient. Чтобы потом можно было назначить градиент конкретной фигуре для определения градиента задается атрибут id. Назначить градиент фигуре можно указав id градиента как значение атрибута fill фигуры.
fill="url(#gradientDefinition)"
Сам градиент определяется неким набором контрольных точек - стопов. Похоже на Photoshop (ну в принципе во всех графических редакторах это делается одинаково). Только в Photoshop'e это делается визуально через GUI, а здесь задается текстово. Для каждого стопа можно указать цвет, прозрачность, смещение...