SVG: используем CSS для опредления внешнего вида

Этот урок связан с проектом Масштабируемая векторная графика

Продолжим серию уроков, посвященных использованию SVG на страницах веб проектов. Одним из его преимуществ является возможность использования CSS для определения внешнего вида.

 

Свойства для SVG элементов

Определение стилей для SVG элементов происходит также, как и для обычных элементов HTML. Некоторые свойства являются общими, но есть и специфические свойства для объектов SVG/

Например: для обычного элемента HTML можно задавать цвет фона свойствами CSS background-color или background. В SVG ситуация несколько отличается: фоновый цвет определяется свойством fill (заполнение). Также обводка элемента определяется свойством stroke, а не border, как в обычном HTML. Полный список свойств приводится здесь.

Если вы знакомы с инструментами редактирования векторной графики (например, редактор Adobe Illustrator), то подобный подход к определению свойств покажется вам логичным.

 

Реализация определения стилей для SVG элементов

Мы можем использовать следующие методы для определения стилей SVG элементов.

Атрибуты представления

Все свойства SVG могут быть применены непосредственно к представлению элемента в коде HTML. Следующий пример показывает как использовать свойства fill и stroke непосредственно для элемента rect:

<svg> <rect width=»200″ height=»200″ fill=»slategrey» stroke=»black» stroke-width=»3″/> </svg>

В результате получится примерно такой прямоугольник:

 

Встраиваемые стили

Мы также можем добавлять стили с помощью атрибута style. В следующем примере также добавляются свойства fill и stroke к элементу rect, но в этот раз с помощью атрибута style, и также производится вращение элемента с помощью свойства CSS3 transform:

<svg> <rect x=»203″ width=»200″ height=»200″ style=»fill:slategrey; stroke:black; stroke-width:3; -webkit-transform: rotate(45deg);»/> </svg>

 

Внутренняя таблица стилей

Объединение стилей для SVG в элементе style также возможно и не отличается от обычного HTML. Пример демонстрирует как добавить во внутреннюю таблицу стилей правила для SVG элементов в документе .html:

<style type=»text/css» media=»screen»> #internal rect { fill: slategrey; stroke: black; stroke-width: 3; -webkit-transition: all 350ms; } #internal rect:hover { fill: green; } </style>

Однако, SVG является основанным на XML языком, поэтому при добавлении встроенных стилей в документ .svg нужно использовать декларацию cdata:

<style type=»text/css» media=»screen»> <![CDATA[ #internal rect { fill: slategrey; stroke: black; stroke-width: 3; -webkit-transition: all 350ms; } #internal rect:hover { fill: green; } ]]> </style>

Директива cdata в данном случае обязательна, так как CSS используется символ >, который может конфликтовать с обработчиком XML.

 

Внешняя таблица стилей

Внешняя таблица стилей действует также для элементов SVG в документе .html.

<link rel=»stylesheet» type=»text/css» href=»/style.css»>

В документе .svg необходимо ссылаться на  внешнюю таблицу как на  xml-stylesheet:

<?xml-stylesheet type=»text/css» href=»/style.css»?>

 

Группировка элементов

Элементы SVG могут быть сгруппированы с помощью элемента <g>. Сгруппированные элементы позволяют использовать общие стили для всех элементов в группе:

<g style=»fill:slategrey; stroke:black; stroke-width:3; fill-opacity: 0.5;»> <rect x=»203″ width=»200″ height=»200″/> <circle cx=»120″ cy=»106″ r=»100″/> </g>

И круг и прямоугольник будут иметь одинаковый внешний вид:

 

В следующем уроке мы разберем вопрос использование текста в SVG элементах.

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/V8AWsrJIQrE/lessons.php

Источник: lred.ru

Оцените статью
новости для мужчин