Создание градиента с помощью SVG

Четверг, июля 16, 2009 23:23
Рубрика Верстка

градиент Хочу поделиться одним из методов создания масштабируемых градиентов. Сразу скажу что у него есть свои недостатки, которые ограничивают его применение. В основе данного метода лежит использование формата SVG, который является очень перспективным стандартом представления векторной графики.

Как известно, векторные рисунки не теряют своего качества при их увеличении. Ниже представлены два прямоугольника с градиентной заливкой. В обоих случаях используется одно и то же изображение в формате SVG.

Ограничение использования SVG изображений связано с их способом вставки на страницу. К примеру, в настоящий момент только Opera позволяет вставлять SVG-графику c помощью тега IMG, а также задать ее в качесве фона для HTML-элемента. В остальных же случаях для вставки SVG мы вынуждены использовать тег EMBED:

<embed width="100" height="100" type="image/svg+xml" src="image.svg" />

В итоге, для того чтобы задать такой градиент в качестве фона, придется использовать абсолютное позиционирование. По сути дела, в некоторых случаях можно использовать и обычные изображения, например в формате PNG, который отличается тем, что градиентные изображения, сохраненные в нем, имеют сравнительно небольшой размер даже при большом разрешении.

Однако SVG дает немного больше возможностей, благодаря тому, что основан на языке XML и имеет текстовый формат. Например, можно с легкостью изменять цвета градиента, при чем для этого будет достаточно обычного текстового редактора. К тому же, такой градиент можно использовать на сайтах, где цветовая схема настраивается самим пользователем, в этом случае SVG файл можно генерировать на сервере и в него заранее будут подставляться те цвета, которые задал пользователь.

В нашем SVG файле цвета градиента определяют следующие строчки:

    ...
    <stop offset="00%" style="stop-color: #e53939;"/>
    <stop offset="100%" style="stop-color: #880000;"/>
    ...

Подставив свои значения для stop-color мы получим градиент с нужными нам цветами. Кроме того, можно добавлять промежуточные цвета вставляя дополнительные теги и указывая смещение через атрибут offset.

Метки: ,

6 коммент. к “Создание градиента с помощью SVG”

  1. Владислав пишет:

    17 июля 2009 в 18:14

    ммм…..заинтересовало,может себе поставлю

    а у тебя шпка с помощью SVG сделана???)

  2. Dimon пишет:

    18 июля 2009 в 0:05

    Шапка сделана обычной картинкой, здесь нет необходимости в SVG ))

  3. applee пишет:

    30 августа 2009 в 13:39

    Для сайта это может оказаться полезным.
    Надо полагать что скорость загрузки увеличиться,
    Однако при создании более сложной графики на мой взгляд этот способ не совсем приемлем.

  4. Dmitiy пишет:

    13 ноября 2009 в 18:43

    А есть какой-нибудь кросс-браузерный вариант для вставки SVG-изображений?

  5. Тимур пишет:

    13 декабря 2009 в 3:41

    Подскажите пожалуйста, можно ли как-нибудь используя метод вставки через embed задать градиентный фон страницы?

  6. Александр пишет:

    11 февраля 2010 в 15:35

Оставить комментарий или два