Варианты использования SVG на сайтах. Часть #3
SVG текст
Как работать с SVG текстом? Текст выводится внутри парного элемента text с указанием координат его отрисовки. Управление внешний видом текста доступно через классы, где можно применять обычные CSS-свойства.
<svg class="border" width="250" height="100" viewBox="0 0 250 100" xmlns="http://www.w3.org/2000/svg">
<text class="text" x='20' y='60'>Вывод SVG текста</text>
</svg>
.border {
border:2px dashed gray;
}
.text {
fill: peru; /* цвет текста */
font-size: 25px;/* размер текста */
}
Пример SVG текста с поворотом
<svg class="border" width="250" height="100" viewBox="0 0 250 100" xmlns="http://www.w3.org/2000/svg">
<text class="text-rotate" x='20' y='60' transform="rotate(10 90,20)">Вывод SVG текста</text>
</svg>
Вывод нескольких строк с текстом
Элемент text может содержать несколько подэлементов tspan, каждый из которых может определять свои координаты позиционирования.
<svg class="border" width="250" height="100" viewBox="0 0 250 100" xmlns="http://www.w3.org/2000/svg">
<text class="multi-text" x='20' y='30'>Вывод SVG текста:
<tspan x="20" y="60">Первая строка</tspan>
<tspan x="20" y="80">Вторая строка</tspan>
</text>
</svg>
.multi-text {
fill: peru; /* цвет текста */
font-size: 20px; /* размер текста */
}
Вывод текста-ссылки
<svg class="border" width="250" height="100" viewBox="0 0 250 100" xmlns:xlink="http://www.w3.org/1999/xlink">
<a xlink:href="http://domain.ru/" target="_blank">
<text class="text-link" x="25" y="60">SVG текст-ссылка</text>
</a>
</svg>
.text-link {
fill: peru; /* цвет текста */
font-size: 25px; /* размер текста */
}
Звездный рейтинг на SVG
Довольно часто бывает, когда нужно вставить на странице одну и ту же геометрическую фигуру, но в разных местах. Набор SVG элементов позволяет это сделать оптимально, без нагромождения кода. Создадим фигуру звездочки один раз, используя примитив polygon и спрячем ее в контейнере def. Далее с помощью элемента use, вставим нашу звездочку столько раз, сколько нужно, меняя при этом только координаты последующих копий звездочки. Оригинальный элемент отрисовки звезды polygon свяжем со всеми его копиями use.
<svg class="border" width="350" height="110" viewBox="0 0 350 110" xmlns="http://www.w3.org/2000/svg">
<def>
<polygon id="elem" points="50,5 20,99 95,39 5,39 80,99"/>
</def>
<use x="15" y="3" class="star" xlink:href="#elem"></use>
<use x="125" y="3" class="star" xlink:href="#elem"></use>
<use x="235" y="3" class="star" xlink:href="#elem"></use>
</svg>
.star {
fill:pink;
stroke: gray; /* цвет прямой линии */
stroke-width: 0; /* ширина прямой линии */
}
Альтернативы symbol и g
Элемент symbol используется для создания SVG спрайтов и позволяет иметь свою систему координат. Элемент g группирует элементы по ID, по цвету заливки. Если элемент def заменить на symbol или g, тогда прятать его придется через display="none".
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.