SVG: текст в векторной графике
В предыдущих уроках серии мы рассмотрели основы работы с SVG в HTML. Данный урок будет посвящен использованию текста в векторной графике.
Основы
Вот так формируется текст в SVG:
<svg> <text x="0" y="15">Текст в <a href="http://ruseller.com/project.php?id=12" style="" target="_blank" rel="nofollow">масштабируемой векторной графике</a> (SVG) </text> </svg>
Текст в элементе SVG определяется с помощью тега <text>
. Для данного тега требуется только указание атрибутов x
и y
, с помощью которых задается базовая линия текста.
В таком формате отличий от обычного текста HTML не наблюдается.
Основные стили текста
Текст может быть стилизован с помощью свойств CSS, таких как font-weight
, font-style
и text-decoration
, которые определяются любым из описанных в уроке о стилизации SVG с помощью CSS. Вот несколько примеров.
Жирный текст
<svg> <text x="0" y="15" style="font-weight: bold;">Жирный текст в масштабируемой векторной графике(SVG)</text> </svg>
Курсив
<svg> <text x="0" y="15" style="font-style: italic;">Текст курсивом в масштабируемой векторной графике(SVG)</text> </svg>
Подчеркнутый текст
<svg> <text x="0" y="15" style="text-decoration: underline;">Подчеркнутый текст в масштабируемой векторной графике(SVG)</text> </svg>
Используем элемент <tspan>
В некоторых случаях нужно применить стили или атрибуты только для определенной части. В такие моменты можно использовать элемент <tspan>
. Пример ниже показывает, как добавить жирный, курсивом и подчеркнутый текст в одну строку.
<svg> <text x="0" y="15"><tspan style="font-weight: bold;">Жирный текст</tspan>, <tspan style="font-style: italic;">текст курсивом</tspan> и <tspan style="text-decoration: underline;">подчеркнутая часть</tspan>.</text> </svg>
Режим вывода текста
Текст в мире пишется не только слева-направо. Например, в Японии текст пишут сверху вниз. В такие ситуации можно разрешить с помощью атрибута writing-mode
.
<svg> <text x="70" y="20" style="writing-mode: tb;" class="japanese">???????</text> </svg>
В выше приведенном примере несколько случайных японских символов (смысл надписи скрыт для автора) выводятся со сменой ориентации, определенной в стилях: writing-mode: tb
, где tb
- top-to-bottom (сверху-вниз).
Обводка текста
В SVG текст является графикой, и мы можем применять для него атрибут stroke
и определять линию обводки, как для других графических объектов.
<svg> <text x="0" y="50px" font-size="50px" font-weight="bold" stroke="black" stroke-width="0.5" fill="none">Обводка</text> </svg>
В выше приведенном примере мы добавили атрибут stroke
к элементу <text>
и удалили цвет текста с помощью атрибута fill
со значением none
.
Текст по линии
В SVG текст может выводиться не только вертикально или горизонтально, но и по заданной линии.
Для начала нужно определить траекторию. Однако создание траектории непосредственно в HTML достаточно трудоемкое занятие. Можно воспользоваться векторным редактором (Inkscape или Illustrator), создать нужную траекторию и сохранить SVG код.
Затем взять элемент <path>
из элемента <defs>
.
<defs> <path id="textpath" fill="none" stroke="#000000" d="M0.057,0.024c0,0,10.99,51.603,102.248,51.603c91.259,0,136.172,53.992,136.172,53.992"/> </defs>
Обратите внимание, что мы добавили атрибут id
к элементу <path>
. Теперь нужно привязать траекторию с идентификатором id
к нашему тексту в элементе <textPath>:
<use xlink:href="#textpath"/> <text x="10" y="100"> <textPath xlink:href="#textpath"> Lorem ipsum dolor sit amet consectetur. </textPath> </text>
Градиент
Заполнение текста также возможно в SVG.
Сначала нужно определить цвета градиента.
<defs> <linearGradient id="textgradient" x1="0%" x2="0%" y1="0%" y2="100%"> <stop stop-color="#999" offset="0%"/> <stop stop-color="#111" offset="100%"/> </linearGradient> </defs>
Когда все необходимые определения установлены нужно только добавить текст и связать атрибут fill
с атрибутом id
градиента:
<text x="0" y="80" font-size="72" font-weight="bold" fill="url(#textgradient)" stroke="none">Градиент</text>
В следующем уроке мы рассмотрим анимации SVG графики.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/HY8QgdyocmE/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
- 2024-01-18 » Мифический человеко-DevOps
- 2023-12-28 » Google подвел итоги 2023 года в поиске
- 2023-12-28 » 5 ошибок отдела продаж, из-за которых вы теряете клиентов
- 2023-12-28 » Американский суд признал монополию Google на рынках дистрибуции Android-приложений
- 2023-12-28 » Хостинг-провайдер GoDaddy перестанет оказывать услуги пользователям из России
- 2023-12-28 » ТОП-5 методов юзабилити-исследований. Разбор слабых и сильных сторон
Люди обычно тратят свою жизнь на то, чтобы свести к минимуму потери, а не на то, чтобы привести к максимуму приобретения. |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.