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
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-11-26 » Капитан грузового судна, или Как начать использовать Docker в своих проектах
- 2024-11-26 » Обеспечение безопасности ваших веб-приложений с помощью PHP OOP и PDO
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-22 » Ошибки в Яндекс Вебмастере: как найти и исправить
- 2024-11-15 » Перенос сайта на WordPress с одного домена на другой
- 2024-11-08 » OSPanel 6: быстрый старт
- 2024-11-08 » Как установить PhpMyAdmin в Open Server Panel
- 2024-09-30 » Как быстро запустить Laravel на Windows
- 2024-09-25 » Next.js
- 2024-09-05 » OpenAI рассказал, как запретить ChatGPT использовать содержимое сайта для обучения
- 2024-08-28 » Чек-лист: как увеличить конверсию интернет-магазина на примере спортпита
- 2024-08-01 » WebSocket
- 2024-07-26 » Интеграция с Яндекс Еда
- 2024-07-26 » Интеграция с Эквайринг
- 2024-07-26 » Интеграция с СДЕК
- 2024-07-26 » Интеграция с Битрикс-24
- 2024-07-26 » Интеграция с Travelline
- 2024-07-26 » Интеграция с Iiko
- 2024-07-26 » Интеграция с Delivery Club
- 2024-07-26 » Интеграция с CRM
- 2024-07-26 » Интеграция с 1C-Бухгалтерия
- 2024-07-24 » Что такое сторителлинг: техники и примеры
- 2024-07-17 » Ошибка 404: что это такое и как ее использовать для бизнеса
- 2024-07-03 » Размещайте прайс-листы на FarPost.ru и продавайте товары быстро и выгодно
- 2024-07-01 » Профилирование кода в PHP
- 2024-06-28 » Изучаем ABC/XYZ-анализ: что это такое и какие решения с помощью него принимают
- 2024-06-17 » Зачем вам знать потребности клиента
- 2024-06-11 » Что нового в работе Яндекс Метрики: полный обзор обновления
- 2024-06-11 » Поведенческие факторы ранжирования в Яндексе
- 2024-06-11 » Скорость загрузки сайта: почему это важно и как влияет на ранжирование
Все мы сидим в сточной канаве, но некоторые при этом смотрят на звезды Уайльд Оскар - (1854-1900) - английский писатель |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.