Элемент text предназначен для помещения в SVG – документ символьных данных. Как и в случае графических фигур координаты x и y текстовой строки отсчитываются от верхнего левого угла. Элемент поддерживает текстовые свойства, такие как размер шрифта, стиль, начертание, причем строка может быть выделена и скопирована (рис. 4.1):
(рис 4.1) Копирование текста из SVG – документа в блокнотДля включения текста в документ достаточно указать расположение текстовой строки при помощи атрибутов x и y элемента text:
<text x="50" y="50">
Сюда помещается текстовый фрагмент.
</text>
Текст, помещаемый в SVG документ, может быть индексирован поисковыми системами.
SVG поддерживает формат Unicode и поэтому один и тот же документ допускает локализацию на различных языках.
В табл. 4.1 приводятся некоторые атрибуты элемента text. Использование в коде атрибута со значением по умолчанию, как правило, равносильно отсутствию явного определения этого атрибута.
| № | Название |
|---|---|
| 4.1.1 | direction |
| Описание | |
| Направление текста. В некоторых языках (например, в арабском) принято писать текст справа налево. Для задания написания справа налево необходимо дополнительно включать атрибут unicode-bidi | |
| Диапазон значений | |
| - right to left – справа налево. - left to right – слева направо |
|
| Значение по умолчанию | |
|
|
| № | Название |
| 4.1.2 | dominant- |
| Описание | |
| Выравнивание текста относительно горизонтальной линии | |
| Диапазон значений | |
auto | | |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.3 | fill |
| Описание | |
| Цвет текста. Поддерживаются именованные значения, а также RGB код в десятичной и шестнадцатеричной формах. | |
| Диапазон значений | |
| Все множество цветов. | |
| Значение по умолчанию | |
black ( черный). |
|
| № | Название |
| 4.1.4 | font-family |
| Описание | |
| Шрифт текста. | |
| Диапазон значений | |
Все шрифты, доступные на компьютере. При отсутствии заданного шрифта будет использован подобный (например, при отсутствии шрифта Arial будет использован Arial Bold ) |
|
| Значение по умолчанию | |
Arial |
|
| № | Название |
| 4.1.5 | font-size |
| Описание | |
| Размер шрифта. | |
| Диапазон значений | |
Все значения, имеющие размерность <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
| 12 пт. | |
| № | Название |
| 4.1.6 | |
| Описание | |
В обычных шрифтах зрительно воспринимаемый размер шрифта в основном зависит не от свойства font-size, а от атрибута x-height (вертикальный размер строчной буквы "x" ). Параметр x-height сильно отличается у различных шрифтов, имеющих одно и то же значение свойства font-size. В результате шрифты с одинаковым значением параметра font-size зрительно воспринимаются как шрифты разного размера.
Отношение значения параметра x-height к значению свойства font-size называется аспектом шрифта ( ). Если аспект одного шрифта больше чем аспект другого, то, при одном и том же значении свойства font-size, первый шрифт выглядит больше. Для того, что бы создать зрительное впечатление о шрифтах равных размеров, следует увеличить размер второго шрифта так, что бы вертикальный размер строчных букв был одинаковым в обоих шрифтах.
Более подробно о свойстве см. в спецификации |
|
| Диапазон значений | |
Все значения, имеющие размерность <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
none |
|
| № | Название |
| 4.1.7 | |
| Описание | |
| Сжатие и растяжение текста | |
| Диапазон значений | |
normal | wider | |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.8 | |
| Описание | |
| Курсивный текст. | |
| Диапазон значений | |
normal | italic | |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.9 | font-weight |
| Описание | |
Свойство определяет вес шрифта. Значения имеют следующий смысл:
от 100 до 900
Эти значения формируют упорядоченную последовательность, где каждый номер обозначает вес, который темнее своего предшественника. normal
То же, что "400". bold
То же, что "700". bolder
Определяет вес шрифта, более темный, чем наследуемый. Если такого веса нет, результатом будет более "темное" числовое значение (а шрифт не изменяется), если только наследуемое значение не "900", в этом случае результат будет также "900". lighter
Определяет вес шрифта, назначаемый шрифту, который светлее, чем наследуемый. Если такого веса нет, результатом будет более "светлое" числовое значение (а шрифт не изменяется), если только наследуемое значение не "100", в этом случае результат будет также "100". |
|
| Диапазон значений | |
normal | bold | bolder | lighter | 100 | 200 | 300
| 400 | 500 | 600 | 700 | 800 | 900 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.10 | |
| Описание | |
| Горизонтальная ориентация символов. Возможен выбор из фиксированного диапазона значений угла. | |
| Диапазон значений | |
0 | 90 | 180 | 270 (и значения со знаком минус) |
|
| Значение по умолчанию | |
auto или 0 |
|
| № | Название |
| 4.1.11 | |
| Описание | |
| Вертикальная ориентация символов. Возможен выбор из фиксированного диапазона значений угла. | |
| Диапазон значений | |
0 | 90 | 180 | 270 (И значения со знаком минус) |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.12 | |
| Описание | |
| Интервал между буквами. | |
| Диапазон значений | |
auto | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.13 | |
| Описание | |
| Интервал между буквами. | |
| Диапазон значений | |
normal | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.14 | text-anchor |
| Описание | |
| Выравнивание текста относительно начала строки. | |
| Диапазон значений | |
start, middle, end |
|
| Значение по умолчанию | |
start |
|
| № | Название |
| 4.1.15 | |
| Описание | |
| Подчеркивание, надчеркивание, перечеркивание текста | |
| Диапазон значений | |
none | underline | overline | line-through |
|
| Значение по умолчанию | |
none |
|
| № | Название |
| 4.1.16 | unicode-bidi |
| Описание | |
Для работы атрибута direction со значением необходимо наличие в коде свойства unicode-bidi со значением embed или override. Подробнее см. http://www.ssga.ru/metodich/css-2/9-12.htm |
|
| Диапазон значений | |
normal | embed | bidi-override |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.17 | word-spacing |
| Описание | |
| Интервал между словами | |
| Диапазон значений | |
normal | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.18 | writing-mode |
| Описание | |
Этот атрибут устанавливает расположение текстового фрагмента как единого целого относительно исходной точки. Возможные значения, например, слева направо - сверху вниз ( left to right top to bottom ) не изменяют порядок самих букв в словах. |
|
| Диапазон значений | |
|
|
| Значение по умолчанию | |
|
|
| № | Название |
| 4.1.19 | x |
| Описание | |
| Абсцисса верхней левой точки текстового блока | |
| Диапазон значений | |
<coordinate> См. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.1.20 | y |
| Описание | |
| Ордината верхней левой точки текстового блока | |
| Диапазон значений | |
<coordinate> См. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
В табл. 4.2 приводятся примеры использования основных свойств элемента text.
| № | Код | Вид в браузере |
|---|---|---|
| 4.2.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text1.svg
</desc>
<text x="50" y="50">
Простой текст
</text>
</svg>
|
![]() |
| Описание | ||
Текст без форматирования. Выводится черным цветом шрифтом Arial размером в 12 пт. |
||
| № | Код | Вид в браузере |
| 4.2.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text2.svg
</desc>
<text x="10" y="50" font-family="Comic Sans MC"
font-size="24" fill="indigo">
Цветной текст
</text>
</svg>
|
![]() |
| Описание | ||
| Цветной текст для которого определен шрифт и размер. | ||
| № | Код | Вид в браузере |
| 4.2.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text3.svg
</desc>
<text x="10" y="50"
style="font-family: Comic Sans MC; font-size: 24; fill: indigo">
Цветной текст
</text>
<g font-family="Arial" font-size="40" stroke="black" stroke-width="1">
<text x="10" y="100" fill="red">
Red
</text>
<text x="10" y="150" fill="yellow">
Yellow
</text>
<text x="10" y="200" fill="green">
Green
</text>
</g>
</svg>
|
![]() |
| Описание | ||
| Для оформления первой строки применено встраивание стиля в тег элемента. Последующие строки объединены в группу для которой определено общее оформление. | ||
| № | Код | Вид в браузере |
| 4.2.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text4.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" text-decoration="none" >
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" text-decoration="underline" >
Подчеркнутый текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" text-decoration="line-through" >
Зачеркнутый текст
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" text-decoration="overline" >
Текст под чертой
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" text-decoration="underline overline" >
Две черты
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут определяет начертание текста. |
||
| № | Код | Вид в браузере |
| 4.2.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text5.svg
</desc>
<defs>
<style type="text/css">
<![CDATA[
text
{
font-family: Arial;
font-size: 20;
}
text.obichniy
{
text-decoration: none;
}
text.podcherknutiy
{
text-decoration: underline;
}
text.zacherknutiy
{
text-decoration: line-through;
}
text.podChertoy
{
text-decoration: overline;
}
text.dveCherti
{
text-decoration: underline overline;
}
]]>
</style>
</defs>
<text x="10" y="30" class="obichniy" >
Обычный текст
</text>
<text x="10" y="65" class="podcherknutiy" >
Подчеркнутый текст
</text>
<text x="10" y="100" class="zacherknutiy" >
Зачеркнутый текст
</text>
<text x="10" y="135" class="podChertoy" >
Текст под чертой
</text>
<text x="10" y="170" class="dveCherti" >
Две черты
</text>
</svg>
|
![]() |
| Описание | ||
| Использование классов, определяющих начертание текста. | ||
| № | Код | Вид в браузере |
| 4.2.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="480"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text6.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-weight="normal">
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-weight="bold" >
Жирный текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-weight="bolder">
Текст bolder
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" font-weight="lighter" >
Текст lighter
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" font-weight="100" >
Текст 100
</text>
<text x="10" y="205" font-family="Arial"
font-size="20" font-weight="200" >
Текст 200
</text>
<text x="10" y="240" font-family="Arial"
font-size="20" font-weight="300" >
Текст 300
</text>
<text x="10" y="275" font-family="Arial"
font-size="20" font-weight="400" >
Текст 400
</text>
<text x="10" y="310" font-family="Arial"
font-size="20" font-weight="500" >
Текст 500
</text>
<text x="10" y="345" font-family="Arial"
font-size="20" font-weight="600" >
Текст 600
</text>
<text x="10" y="380" font-family="Arial"
font-size="20" font-weight="700" >
Текст 700
</text>
<text x="10" y="415" font-family="Arial"
font-size="20" font-weight="800" >
Текст 800
</text>
<text x="10" y="450" font-family="Arial"
font-size="20" font-weight="900" >
Текст 900
</text>
</svg>
|
![]() |
| Описание | ||
Примеры использования свойства font-weight, поддерживающего именованные и числовые значения. |
||
| № | Код | Вид в браузере |
| 4.2.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text7.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-style="normal" >
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-style="italic" >
Курсивный текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-style="oblique" >
Курсивный текст
</text>
</svg>
|
![]() |
| Описание | ||
Получение курсивного текста. Значение атрибута задает курсивное начертание строк прописными буквами. |
||
| № | Код | Вид в браузере |
| 4.2.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="445"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text8.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-stretch="normal" >
font-stretch
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-stretch="wider" >
font-stretch
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-stretch="normal" >
font-stretch
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" font-stretch="narrower" >
font-stretch
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" font-stretch="ultra-condensed" >
font-stretch
</text>
<text x="10" y="205" font-family="Arial"
font-size="20" font-stretch="extra-condensed" >
font-stretch
</text>
<text x="10" y="240" font-family="Arial"
font-size="20" font-stretch="condensed" >
font-stretch
</text>
<text x="10" y="275" font-family="Arial"
font-size="20" font-stretch="semi-condensed" >
font-stretch
</text>
<text x="10" y="310" font-family="Arial"
font-size="20" font-stretch="semi-expanded" >
font-stretch
</text>
<text x="10" y="345" font-family="Arial"
font-size="20" font-stretch="expanded" >
font-stretch
</text>
<text x="10" y="380" font-family="Arial"
font-size="20" font-stretch="extra-expanded" >
font-stretch
</text>
<text x="10" y="415" font-family="Arial"
font-size="20" font-stretch="ultra-expanded" >
font-stretch
</text>
</svg>
|
![]() |
| Описание | ||
| Уплотненное и разреженное начертание слов. | ||
| № | Код | Вид в браузере |
| 4.2.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="445"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text9.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="16" kerning="auto" >
Кернинг
</text>
<text x="10" y="65" font-family="Arial"
font-size="16" kerning="10" >
Кернинг
</text>
<text x="10" y="100" font-family="Arial"
font-size="16" kerning="15" >
Кернинг
</text>
<text x="10" y="135" font-family="Arial"
font-size="16" kerning="20" >
Кернинг
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут , задающий межбуквенный интервал в числовых значениях. |
||
| № | Код | Вид в браузере |
| 4.2.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="160"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text10.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="16" letter-spacing="normal" >
Кернинг
</text>
<text x="10" y="65" font-family="Arial"
font-size="16" letter-spacing="10" >
Кернинг
</text>
<text x="10" y="100" font-family="Arial"
font-size="16" letter-spacing="15" >
Кернинг
</text>
<text x="10" y="135" font-family="Arial"
font-size="16" letter-spacing="20" >
Кернинг
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут аналогичен атрибуту |
||
| № | Код | Вид в браузере |
| 4.2.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="160"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text11.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="12" word-spacing="normal" >
Интервал между словами
</text>
<text x="10" y="65" font-family="Arial"
font-size="12" word-spacing="10" >
Интервал между словами
</text>
<text x="10" y="100" font-family="Arial"
font-size="12" word-spacing="15" >
Интервал между словами
</text>
<text x="10" y="135" font-family="Arial"
font-size="12" word-spacing="20" >
Интервал между словами
</text>
</svg>
|
![]() |
| Описание | ||
| Атрибут word-spacing задает интервал между словами. | ||
| № | Код | Вид в браузере |
| 4.2.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text12.svg
</desc>
<text x="105" y="30" font-family="Arial"
font-size="16" text-anchor="start">
text-anchor
</text>
<text x="105" y="65" font-family="Arial"
font-size="16" text-anchor="middle">
text-anchor
</text>
<text x="105" y="100" font-family="Arial"
font-size="16" text-anchor="end">
text-anchor
</text>
</svg>
|
![]() |
| Описание | ||
| Выравнивание текста – слева, справа и по центру. | ||
| № | Код | Вид в браузере |
| 4.2.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="190"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text13.svg
</desc>
<defs>
<style type="text/css">
<![CDATA[
text
{
font-family: Arial;
font-size: 16;
}
text.ltr
{
direction:ltr;
unicode-bidi: bidi-override;
}
text.rtl
{
direction:rtl;
unicode-bidi: bidi-override;
}
]]>
</style>
</defs>
<text x="50" y="30" class="ltr" >
Направление
</text>
<text x="50" y="65" class="ltr">
Direction
</text>
<text x="50" y="100" class="rtl" >
Направление
</text>
<text x="50" y="135" class="rtl">
Direction
</text>
<text x="50" y="170" direction="rtl" unicode-bidi="bidi-override">
Просто текст
</text>
</svg>
|
![]() |
| Описание | ||
Атрибуты direction и unicode-bidi |
||
| № | Код | Вид в браузере |
| 4.2.14 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text14.svg
</desc>
<text x="125" y="30" writing-mode="lr" >
writing-mode="lr"
</text>
<text x="125" y="65" writing-mode="lr-tb">
writing-mode="lr-tb"
</text>
<text x="125" y="100" writing-mode="rl" >
writing-mode="rl"
</text>
<text x="125" y="135" writing-mode="rl-tb">
writing-mode="rl-tb"
</text>
<text x="125" y="170" writing-mode="tb">
writing-mode="tb"
</text>
<text x="160" y="170" writing-mode="tb-rl">
writing-mode="tb-rl"
</text>
<!--Вспомогательные фигуры-->
<line x1="125" y1="0" x2="125" y2="400"
stroke-width="1" stroke="blue"></line>
<line x1="0" y1="170" x2="250" y2="170"
stroke-width="1" stroke="blue"></line>
<line x1="160" y1="170" x2="160" y2="400"
stroke-width="1" stroke="blue"></line>
</svg>
|
![]() |
| Описание | ||
Атрибут writing-mode, задает направление написания текста относительно исходной точки с сохранением расположения букв слева направо. |
||
| № | Код | Описание |
| 4.2.15 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text15.svg
</desc>
<text x="10" y="30"
glyph-orientation-horizontal="0">
glyph-orientation-horizontal="0"
</text>
<text x="10" y="65"
glyph-orientation-horizontal="90">
glyph-orientation-horizontal="90"
</text>
<text x="10" y="100"
glyph-orientation-horizontal="180" >
glyph-orientation-horizontal="180"
</text>
<text x="10" y="135"
glyph-orientation-horizontal="270">
glyph-orientation-horizontal="270"
</text>
<text x="10" y="170"
glyph-orientation-horizontal="-90">
glyph-orientation-horizontal="-90"
</text>
<text x="10" y="205"
glyph-orientation-horizontal="-180">
glyph-orientation-horizontal="-180"
</text>
<text x="10" y="240"
glyph-orientation-horizontal="-270">
glyph-orientation-horizontal="-270"
</text>
</svg>
|
Атрибут позволит без труда получить "зеркальное" отображение текста |
| Вид в браузере | ||
![]() |
||
| № | Код | Вид в браузере |
| 4.2.16 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="450"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text16.svg
</desc>
<text x="10" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="0">
glyph-orientation-vertical="0"
</text>
<text x="45" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="90">
glyph-orientation-vertical="90"
</text>
<text x="80" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="180" > glyph-orientation-vertical="180"
</text>
<text x="115" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="270"> glyph-orientation-vertical="270"
</text>
<text x="150" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-90">
glyph-orientation-horizontal="-90"
</text>
<text x="185" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-180">
glyph-orientation-vertical="-180"
</text>
<text x="220" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-270">
glyph-orientation-vertical="-270"
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением "0" позволяет получить одно из наиболее употребительных оформлений текста. |
||
| № | Код | Вид в браузере |
| 4.2.17 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="320" height="280"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text17.svg
</desc>
<text x="30" y="30" font-size-adjust="0">
font-size-adjust="0"
</text>
<text x="30" y="65" font-size-adjust="0.4">
font-size-adjust="0.4"
</text>
<text x="30" y="100" font-size-adjust="0.5">
font-size-adjust="0.5"
</text>
<text x="30" y="135" font-size-adjust="1">
font-size-adjust="1"
</text>
<text x="30" y="170" font-size-adjust="1.1">
font-size-adjust="1.1"
</text>
<text x="30" y="205" font-size-adjust="1.2">
font-size-adjust="1.2"
</text>
<text x="30" y="240" font-size-adjust="1.3">
font-size-adjust="1.3"
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением "0.5" достаточно близок к исходному тексту для шрифта Arial, принятому по умолчанию. |
||
| № | Код | Вид в браузере |
| 4.2.18 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="180"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text18.svg
</desc>
<text x="30" y="30"
dominant-baseline="auto">
dominant-baseline="auto"
</text>
<text x="30" y="65"
dominant-baseline="hanging">
dominant-baseline="hanging"
</text>
<text x="30" y="100"
dominant-baseline="mathematical">
dominant-baseline="mathematical"
</text>
<text x="30" y="135">
text
</text>
<!--Вспомогательные фигуры-->
<line x1="10" y1="30" x2="250" y2="30"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="65" x2="250" y2="65"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="100" x2="250" y2="100"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="135" x2="250" y2="135"
stroke-width="1" stroke="blue"></line>
</svg>
|
![]() |
| Описание | ||
Наиболее употребительные значения атрибута dominant- позволяют задавать расположение строки относительно основной линии. |
||
Попробуем разместить в SVG - документе достаточно большой фрагмент текста:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPangramma.svg
</desc>
<text x="10" y="50">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</text>
</svg>
Несмотря на форматирование текста в коде в результате мы видим одну длинную строку, без разбиения на абзацы (рис. 4.2):
(рис 4.2) Пример textPangramma.svgЭлемент text не поддерживает перенос строк. Конечно, можно разбить этот фрагмент на три части и для каждой из них определить координаты элемента text. Но это не лучший способ. Для подобных задач в SVG – графике имеется элемент tspan, предназначенный для оформления отдельных фрагментов, слов или даже букв. Для рассматриваемого случая код должен выглядеть так:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>Пример tspanPangramma.svg</desc>
<text x="10" y="50">
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
</text>
</svg>
Теперь все предложения помещаются в документе (рис. 4.3):
(рис 4.3) Пример tspanPangramma.svgЭлемент tspan помещается внутри элемент text и задает дополнительное форматирование при помощи атрибутов, значения которых приводятся в табл. 4.3
| № | Название |
|---|---|
| 4.3.1 | x |
| Описание | |
| Абсцисса текстовой строки отсчитываемая |
|
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
Совпадает с абсциссой данного элемента text |
|
| № | Название |
| 4.3.2 | y |
| Описание | |
| Ордината текстовой строки отсчитываемая |
|
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
| Совпадает с ординатой данного элемента text | |
| № | Название |
| 4.3.3 | dx |
| Описание | |
| Горизонтальный отступ текстового фрагмента, отсчитываемый относительно начальной позиции с учетом направления координатных осей (рис 4.4(рис 4.4) Атрибуты dx и dy элемента tspan | |
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.4 | dy |
| Описание | |
| Вертикальный отступ текстового фрагмента, отсчитываемый относительно начальной позиции с учетом направления координатных осей (см. рис. 4.4), т.е это относительная координата. | |
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.5 | rotate |
| Описание | |
| Поворот первого символа, заключенного в элемент tspan, относительно горизонтальной оси. Положительному росту значений угла соответствует направление вращения часовой стрелки. | |
| Диапазон значений | |
От 0 до 360 градусов <angle>, см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.6 | |
| Описание | |
| Атрибут для выравнивания блоков текста относительно горизонтальной линии. Самый удобный способ написания верхних и нижних индексов. | |
| Диапазон значений | |
|
|
| Значение по умолчанию | |
|
В табл. 4.4 приводятся примеры использования элемента tspan.
| № | Код | Вид в браузере |
|---|---|---|
| 4.4.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan1.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red" > выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Шрифт и его размер задается в группе. Это оформление распространяется и на содержимое вложенного элемента tspan. Для выделения цветом и шрифтом отдельного слова применяется элемент tspan с атрибутами font-weight и fill элемента text. |
||
| № | Код | Вид в браузере |
| 4.4.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan2.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16" >
Быстрее,
<tspan font-weight="bold"
fill="red" > выше,</tspan>
сильнее
</text>
</svg>
|
![]() |
| Описание | ||
Шрифт и его размер задается внутри элемента text. Это оформление распространяется и на содержимое вложенного элемента tspan. |
||
| № | Код | Вид в браузере |
| 4.4.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan3.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16">
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
сильнее
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут dy задает вертикальное смещение содержимого элемента tspan, причем последующий текст также располагается на новом уровне. |
||
| № | Код | Вид в браузере |
| 4.4.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan4.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
<tspan dy="10">сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Для выравнивания последующего текста снова применяется элемент tspan со значением атрибута dy="10", которое возвращает текстовую строку на прежний уровень. |
||
| № | Код | Вид в браузере |
| 4.4.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan5.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16">
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10 10 -10 10"> выше,</tspan>
<tspan dy="0">сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут dy может использоваться для задания смещения отдельных букв. В данном случае для расположения четырех букв в слове "выше" применяется атрибут dy, состоящий из четырех значений, разделенных пробелами. |
||
| № | Код | Вид в браузере |
| 4.4.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan6.svg
</desc>
<text x="30" y="30" fill="blue" font-family="Arial"
font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-5 5 -5 5"> выше,</tspan>
<tspan dy="-5 5 -5 5 -5 5 -5">
сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Применение атрибутов dy для оформление слов из четырех и семи букв. |
||
| № | Код | Вид в браузере |
| 4.4.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan7.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="30"> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут dx задает горизонтальное смещение содержимое элемента tspan, причем последующий текст также располагается на новой позиции. |
||
| № | Код | Вид в браузере |
| 4.4.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan8.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="10 10 10 10 "> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут dx также может использоваться для задания смещения отдельных букв. В данном случае для расположения четырех букв в слове "выше" применяется атрибут dx, состоящий из четырех значений разделенных пробелами. |
||
| № | Код | Вид в браузере |
| 4.4.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan9.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="10 -5 10 -5 "> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
| Последовательное смещение отдельных букв позволяет получить эффект наложения. | ||
| № | Код | Вид в браузере |
| 4.4.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan10.svg
</desc>
<text x="30" y="30" fill="blue" font-family="Arial"
font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-5 5 -5 5" dx="5 5 5 5">
выше,
</tspan>
<tspan dy="-5 5 -5 5 -5 5 -5"
dx="5 5 5 5 5 5 5">
сильнее
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
| Вертикальное и горизонтальное смещение букв. | ||
| № | Код | Вид в браузере |
| 4.4.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan11.svg
</desc>
<text fill="blue" font-family="Arial"
font-size="16">
<tspan x="30 45 60 75 90" y="50">
Верх и
</tspan>
<tspan x="45 60 75" y="100">
низ
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Задание расположения букв при помощи абсолютных координат x и y. |
||
| № | Код | Вид в браузере |
| 4.4.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan12.svg
</desc>
<text fill="blue" font-family="Arial"
font-size="16" >
<tspan x="30 40 50 60 70 80 90"
y="85 75 65 55 45 35 25 "> Быстрее, </tspan>
<tspan font-weight="bold" fill="red"
x=" 60 70 80 90" y="85 75 65 55">
выше,
</tspan>
<tspan x="90 100 110 120 130 140 150"
y="85 75 65 55 45 35 25 ">
сильнее
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Задание расположения букв при помощи наборов абсолютных координат x и y. |
||
| № | Код | Вид в браузере |
| 4.4.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan13.svg
</desc>
<g font-family="Arial" font-size="40" >
<text x="5" y="50" fill="blue" >
<tspan rotate="45 45 45 45 45"> Вкривь</tspan>
<tspan font-weight="bold" fill="red"
rotate="15">и</tspan>
<tspan rotate="-45 -45 -45 -45 -45">вкось</tspan>
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут rotate предназначен для поворота отдельных букв. |
||
| № | Код | Вид в браузере |
| 4.4.14 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="250"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan14.svg
</desc>
<g font-family="Arial" font-size="16">
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="baseline" > выше,</tspan>
сильнее
</text>
<text x="30" y="80" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="sub" > выше,</tspan>
сильнее
</text>
<text x="30" y="130" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="super" > выше,</tspan>
сильнее
</text>
<text x="30" y="180" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="-100%" > выше,</tspan>
сильнее
</text>
<text x="30" y="230" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="5" > выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Выравнивание текстового фрагмента относительно горизонтальной линии при помощи атрибута . Можно задавать также числовые значения смещения. |
||
| № | Код | Вид в браузере |
| 4.4.15 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan15.svg
</desc>
<!--Эмблема пожарного крана-->
<rect x="30" y="30"
height="50" width="50" fill="none"
stroke="red" stroke-width="5"></rect>
<text x="38" y="68" fill="red"
font-family="Arial" font-size="30">
<tspan dx="-16">K</tspan>
</text>
<!--Химическая формула воды-->
<text x="100" y="68" fill="blue"
font-family="Arial" font-size="40">
H
<tspan dy="12" font-size="20" dx="-10">2</tspan>
<tspan dy="-12" dx="-10" >O</tspan>
</text>
<!--Химическая формула серной кислоты-->
<text x="50" y="120" fill="orange"
font-family="Arial" font-size="40">
H
<tspan font-size="20"
baseline-shift="-10">2</tspan>
<tspan baseline-shift="0" >S</tspan>
<tspan baseline-shift="0" >O</tspan>
<tspan font-size="20"
baseline-shift="-10" >4</tspan>
</text>
<!--Эмблема, похожая на LaTeX-->
<text x="50" y="180" fill="black"
font-family="Times" font-size="40">
L
<tspan font-size="32"
dy="-5" dx="-21">A</tspan>
<tspan dy="5" dx="-12">T</tspan>
<tspan dy="7" dx="-13">E</tspan>
<tspan dy="-7" dx="-13">X</tspan>
</text>
<!--Биквадратное уравнение-->
<text x="20" y="250" fill="green"
font-family="Comic Sans MC" font-size="30">
ax
<tspan baseline-shift="super"
font-size="20">4</tspan>
+bx
<tspan baseline-shift="super"
font-size="20">2</tspan>
+с=0
</text>
<!--Эмблема хакеров-->
<text x="20" y="300" fill="black"
font-family="Verdana" font-size="40">
0 1 0
<tspan x="20" y="340" >0 0 1</tspan>
<tspan x="20" y="380"> 1 1 1</tspan>
</text>
<!--Cноска на икс в квадрате-->
<text x="160" y="350" fill="black"
font-family="Verdana" font-size="60">
X
<tspan baseline-shift="super" font-size="30"
dx="-15" >2</tspan>
<tspan dy="-50" font-size="15"
dx="-15"> 2</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
| Несколько примеров, иллюстрирующих возможности SVG – графики создания сложных текстовых элементов. Все эти строки остаются текстом, который может быть скопирован. | ||
Элемент tspan также может содержать все прочие атрибуты элемента text кроме свойств writing-mode, и text-anchor.
В большом SVG – документе может возникнуть потребность в многократной вставке одного и того же блока текста. Для уменьшения размера файла в этом случае удобнее использовать ссылку на однократно определенный
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="50" y="50"></tref>
</text>
Исходный фрагмент помещается в секцию defs, а далее он может быть отображен в любом месте документа при помощи элемента tref, помещаемого внутри элемента text. В табл. 4.5 приводятся примеры применения этого элемента.
| № | Код | Вид в браузере |
|---|---|---|
| 4.5.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tref1.svg
</desc>
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="50" y="50"></tref>
</text>
</svg>
|
![]() |
| Описание | ||
Простая вставка определенного фрагмента текста в документ. Без вставки элемента tref исходный фрагмент, определенный в секции defs, виден не будет. |
||
| № | Код | Вид в браузере |
| 4.5.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tref2.svg
</desc>
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="30" y="50"
font-family="Arial" font-size="20"
fill="red"></tref>
</text>
</svg>
|
![]() |
| Описание | ||
| Вставка текстового фрагмента с заданием оформления. | ||
Элемент tref также может содержать все прочие атрибуты элемента text кроме свойств writing-mode и .
Одной из самых интересных возможностей элемента text является привязка к произвольной траектории, определяемой элементом Path:
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text font-size="24" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
Поскольку элемент path, определяется в секции defs, то он остается
невидимым в SVG – документе даже при задании оформления кривой:
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</defs>
Ссылка на кривую задается при помощи элемента textPath. Атрибут startOffset, задаваемый в процентах, определяет расположение текста – 0 % соответствуют началу, а 100% - концу кривой. В табл. 4.6 приводятся примеры использования этого элемента.
| № | Код | Вид в браузере |
|---|---|---|
| 4.6.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath1.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75"/>
</defs>
<text font-size="24" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
</svg>
|
![]() |
| Описание | ||
| Расположение текста на середине кривой. См. пример CubicCurve1.svg | ||
| № | Код | Вид в браузере |
| 4.6.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath2.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Для отображения кривой в документе элемент Path был добавлен в качестве обычной фигуры. |
||
| № | Код | Вид в браузере |
| 4.6.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath3.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="25%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
| Расположение текста в начале кривой. | ||
| № | Код | Вид в браузере |
| 4.6.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath4.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="75%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75" style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
| Расположение текста в конце кривой. | ||
| № | Код | Вид в браузере |
| 4.6.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath5.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text font-size="12" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="95" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
<tspan dy="10">сильнее</tspan>
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Элемент tspan может быть добавлен внутри текста, размещаемого на кривой. |
||
| № | Код | Вид в браузере |
| 4.6.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath6.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%"
glyph-orientation-horizontal="270">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Применение атрибута для текста на кривой. |
||
| № | Код | Описание |
| 4.6.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="700" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath7.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath"
d="M25,75 Q100,25 175,75 T 325,75 T475, 75 T 625,75" />
</defs>
<text font-size="12" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="50%" >
При рисовании кривых с повторяющимися фрагментами удобно использовать команду
T для упрощения кода.
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 Q100,25 175,75 T 325,75 T475, 75 T 625,75"
style="fill:none; stroke:green;stroke-width:2"/>
</svg>
|
Размещение текста на квадратичной кривой Безье. См. QuadraticCurve5.svg |
| Вид в браузере | ||
![]() |
||
Читатели, знакомые с программой Corel Draw, несомненно, обратили внимание на возможность SVG – графики создавать текст с привязкой к траектории, поскольку такая опция есть в самой программе. Посмотрим на код, который генерирует Corel Draw при создании подобного SVG – рисунка. Выбираем инструмент рисования Безье (рис. 4.5) и проводим несколько линий.
(рис 4.5) Выбор инструмента "Кривая Безье"Выделяем созданный объект, в главном меню программы переходим "Text – Fit Text To Path" (рис. 4.6):
(рис 4.6) Привязка текста к заданной траекторииВводим текст – он размещается на траектории, затем экспортируем рисунок (рис. 4.7):
(рис 4.7) Экспорт готового изображенияВнимательно изучив созданный код, замечаем, что расположение текста на кривой достигается заданием абсолютных координат каждой буквы и ее поворотом (фрагмент кода TextOnAPathCorelDraw.svg):
<text x="2.07099" y="4.97302" class="fil1 fnt0"> <tspan rotate="407">T</tspan> </text> <text x="2.64671" y="5.59955" class="fil1 fnt0"> <tspan rotate="401">e</tspan> </text> <text x="3.35142" y="6.20915" class="fil1 fnt0"> <tspan rotate="391">x</tspan> </text> <text x="4.16422" y="6.68328" class="fil1 fnt0"> <tspan rotate="382">t</tspan> </text> <text x="4.58388" y="6.86955" class="fil1 fnt0"> <tspan rotate="373"> </tspan> </text> <text x="13.872" y="2.80555" class="fil1 fnt0"> <tspan rotate="373">t</tspan> </text> <text x="5.03741" y="7.02195" class="fil1 fnt0"> <tspan rotate="364">o</tspan> </text> <text x="5.97918" y="7.07275" class="fil1 fnt0"> <tspan rotate="349">n</tspan> </text> <text x="6.90402" y="6.85261" class="fil1 fnt0"> <tspan rotate="337"> </tspan> </text> <text x="7.34061" y="6.66635" class="fil1 fnt0"> <tspan rotate="327">a</tspan> </text> <text x="8.11305" y="6.14141" class="fil1 fnt0"> <tspan rotate="318"> </tspan> </text> <text x="9.82499" y="4.26182" class="fil1 fnt0"> <tspan rotate="318">t</tspan> </text> <text x="8.46497" y="5.81968" class="fil1 fnt0"> <tspan rotate="314">P</tspan> </text> <text x="9.22189" y="4.98995" class="fil1 fnt0"> <tspan rotate="310">a</tspan> </text> <text x="10.16" y="3.94009" class="fil1 fnt0"> <tspan rotate="322">h</tspan> </text>
Вывод, который мы делаем – Corel Draw не может генерировать код с корректным отображением привязки текста к траектории.
В этой лекции мы рассмотрели основные элементы и атрибуты SVG – графики для работы с текстом. Применение фильтров (см. Лекцию 7 и Лекцию 8) к тексту позволяет получать дополнительные эффекты – тень, размытие, текстуры.
Элемент text предназначен для помещения в SVG – документ символьных данных. Как и в случае графических фигур координаты x и y текстовой строки отсчитываются от верхнего левого угла. Элемент поддерживает текстовые свойства, такие как размер шрифта, стиль, начертание, причем строка может быть выделена и скопирована (рис. 4.1):
(рис 4.1) Копирование текста из SVG – документа в блокнотДля включения текста в документ достаточно указать расположение текстовой строки при помощи атрибутов x и y элемента text:
<text x="50" y="50">
Сюда помещается текстовый фрагмент.
</text>
Текст, помещаемый в SVG документ, может быть индексирован поисковыми системами.
SVG поддерживает формат Unicode и поэтому один и тот же документ допускает локализацию на различных языках.
В табл. 4.1 приводятся некоторые атрибуты элемента text. Использование в коде атрибута со значением по умолчанию, как правило, равносильно отсутствию явного определения этого атрибута.
| № | Название |
|---|---|
| 4.1.1 | direction |
| Описание | |
| Направление текста. В некоторых языках (например, в арабском) принято писать текст справа налево. Для задания написания справа налево необходимо дополнительно включать атрибут unicode-bidi | |
| Диапазон значений | |
| - right to left – справа налево. - left to right – слева направо |
|
| Значение по умолчанию | |
|
|
| № | Название |
| 4.1.2 | dominant- |
| Описание | |
| Выравнивание текста относительно горизонтальной линии | |
| Диапазон значений | |
auto | | |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.3 | fill |
| Описание | |
| Цвет текста. Поддерживаются именованные значения, а также RGB код в десятичной и шестнадцатеричной формах. | |
| Диапазон значений | |
| Все множество цветов. | |
| Значение по умолчанию | |
black ( черный). |
|
| № | Название |
| 4.1.4 | font-family |
| Описание | |
| Шрифт текста. | |
| Диапазон значений | |
Все шрифты, доступные на компьютере. При отсутствии заданного шрифта будет использован подобный (например, при отсутствии шрифта Arial будет использован Arial Bold ) |
|
| Значение по умолчанию | |
Arial |
|
| № | Название |
| 4.1.5 | font-size |
| Описание | |
| Размер шрифта. | |
| Диапазон значений | |
Все значения, имеющие размерность <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
| 12 пт. | |
| № | Название |
| 4.1.6 | |
| Описание | |
В обычных шрифтах зрительно воспринимаемый размер шрифта в основном зависит не от свойства font-size, а от атрибута x-height (вертикальный размер строчной буквы "x" ). Параметр x-height сильно отличается у различных шрифтов, имеющих одно и то же значение свойства font-size. В результате шрифты с одинаковым значением параметра font-size зрительно воспринимаются как шрифты разного размера.
Отношение значения параметра x-height к значению свойства font-size называется аспектом шрифта ( ). Если аспект одного шрифта больше чем аспект другого, то, при одном и том же значении свойства font-size, первый шрифт выглядит больше. Для того, что бы создать зрительное впечатление о шрифтах равных размеров, следует увеличить размер второго шрифта так, что бы вертикальный размер строчных букв был одинаковым в обоих шрифтах.
Более подробно о свойстве см. в спецификации |
|
| Диапазон значений | |
Все значения, имеющие размерность <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
none |
|
| № | Название |
| 4.1.7 | |
| Описание | |
| Сжатие и растяжение текста | |
| Диапазон значений | |
normal | wider | |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.8 | |
| Описание | |
| Курсивный текст. | |
| Диапазон значений | |
normal | italic | |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.9 | font-weight |
| Описание | |
Свойство определяет вес шрифта. Значения имеют следующий смысл:
от 100 до 900
Эти значения формируют упорядоченную последовательность, где каждый номер обозначает вес, который темнее своего предшественника. normal
То же, что "400". bold
То же, что "700". bolder
Определяет вес шрифта, более темный, чем наследуемый. Если такого веса нет, результатом будет более "темное" числовое значение (а шрифт не изменяется), если только наследуемое значение не "900", в этом случае результат будет также "900". lighter
Определяет вес шрифта, назначаемый шрифту, который светлее, чем наследуемый. Если такого веса нет, результатом будет более "светлое" числовое значение (а шрифт не изменяется), если только наследуемое значение не "100", в этом случае результат будет также "100". |
|
| Диапазон значений | |
normal | bold | bolder | lighter | 100 | 200 | 300
| 400 | 500 | 600 | 700 | 800 | 900 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.10 | |
| Описание | |
| Горизонтальная ориентация символов. Возможен выбор из фиксированного диапазона значений угла. | |
| Диапазон значений | |
0 | 90 | 180 | 270 (и значения со знаком минус) |
|
| Значение по умолчанию | |
auto или 0 |
|
| № | Название |
| 4.1.11 | |
| Описание | |
| Вертикальная ориентация символов. Возможен выбор из фиксированного диапазона значений угла. | |
| Диапазон значений | |
0 | 90 | 180 | 270 (И значения со знаком минус) |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.12 | |
| Описание | |
| Интервал между буквами. | |
| Диапазон значений | |
auto | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
auto |
|
| № | Название |
| 4.1.13 | |
| Описание | |
| Интервал между буквами. | |
| Диапазон значений | |
normal | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.14 | text-anchor |
| Описание | |
| Выравнивание текста относительно начала строки. | |
| Диапазон значений | |
start, middle, end |
|
| Значение по умолчанию | |
start |
|
| № | Название |
| 4.1.15 | |
| Описание | |
| Подчеркивание, надчеркивание, перечеркивание текста | |
| Диапазон значений | |
none | underline | overline | line-through |
|
| Значение по умолчанию | |
none |
|
| № | Название |
| 4.1.16 | unicode-bidi |
| Описание | |
Для работы атрибута direction со значением необходимо наличие в коде свойства unicode-bidi со значением embed или override. Подробнее см. http://www.ssga.ru/metodich/css-2/9-12.htm |
|
| Диапазон значений | |
normal | embed | bidi-override |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.17 | word-spacing |
| Описание | |
| Интервал между словами | |
| Диапазон значений | |
normal | <length> См. табл. 2.8 |
|
| Значение по умолчанию | |
normal |
|
| № | Название |
| 4.1.18 | writing-mode |
| Описание | |
Этот атрибут устанавливает расположение текстового фрагмента как единого целого относительно исходной точки. Возможные значения, например, слева направо - сверху вниз ( left to right top to bottom ) не изменяют порядок самих букв в словах. |
|
| Диапазон значений | |
|
|
| Значение по умолчанию | |
|
|
| № | Название |
| 4.1.19 | x |
| Описание | |
| Абсцисса верхней левой точки текстового блока | |
| Диапазон значений | |
<coordinate> См. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.1.20 | y |
| Описание | |
| Ордината верхней левой точки текстового блока | |
| Диапазон значений | |
<coordinate> См. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
В табл. 4.2 приводятся примеры использования основных свойств элемента text.
| № | Код | Вид в браузере |
|---|---|---|
| 4.2.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text1.svg
</desc>
<text x="50" y="50">
Простой текст
</text>
</svg>
|
![]() |
| Описание | ||
Текст без форматирования. Выводится черным цветом шрифтом Arial размером в 12 пт. |
||
| № | Код | Вид в браузере |
| 4.2.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text2.svg
</desc>
<text x="10" y="50" font-family="Comic Sans MC"
font-size="24" fill="indigo">
Цветной текст
</text>
</svg>
|
![]() |
| Описание | ||
| Цветной текст для которого определен шрифт и размер. | ||
| № | Код | Вид в браузере |
| 4.2.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text3.svg
</desc>
<text x="10" y="50"
style="font-family: Comic Sans MC; font-size: 24; fill: indigo">
Цветной текст
</text>
<g font-family="Arial" font-size="40" stroke="black" stroke-width="1">
<text x="10" y="100" fill="red">
Red
</text>
<text x="10" y="150" fill="yellow">
Yellow
</text>
<text x="10" y="200" fill="green">
Green
</text>
</g>
</svg>
|
![]() |
| Описание | ||
| Для оформления первой строки применено встраивание стиля в тег элемента. Последующие строки объединены в группу для которой определено общее оформление. | ||
| № | Код | Вид в браузере |
| 4.2.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text4.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" text-decoration="none" >
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" text-decoration="underline" >
Подчеркнутый текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" text-decoration="line-through" >
Зачеркнутый текст
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" text-decoration="overline" >
Текст под чертой
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" text-decoration="underline overline" >
Две черты
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут определяет начертание текста. |
||
| № | Код | Вид в браузере |
| 4.2.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text5.svg
</desc>
<defs>
<style type="text/css">
<![CDATA[
text
{
font-family: Arial;
font-size: 20;
}
text.obichniy
{
text-decoration: none;
}
text.podcherknutiy
{
text-decoration: underline;
}
text.zacherknutiy
{
text-decoration: line-through;
}
text.podChertoy
{
text-decoration: overline;
}
text.dveCherti
{
text-decoration: underline overline;
}
]]>
</style>
</defs>
<text x="10" y="30" class="obichniy" >
Обычный текст
</text>
<text x="10" y="65" class="podcherknutiy" >
Подчеркнутый текст
</text>
<text x="10" y="100" class="zacherknutiy" >
Зачеркнутый текст
</text>
<text x="10" y="135" class="podChertoy" >
Текст под чертой
</text>
<text x="10" y="170" class="dveCherti" >
Две черты
</text>
</svg>
|
![]() |
| Описание | ||
| Использование классов, определяющих начертание текста. | ||
| № | Код | Вид в браузере |
| 4.2.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="480"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text6.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-weight="normal">
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-weight="bold" >
Жирный текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-weight="bolder">
Текст bolder
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" font-weight="lighter" >
Текст lighter
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" font-weight="100" >
Текст 100
</text>
<text x="10" y="205" font-family="Arial"
font-size="20" font-weight="200" >
Текст 200
</text>
<text x="10" y="240" font-family="Arial"
font-size="20" font-weight="300" >
Текст 300
</text>
<text x="10" y="275" font-family="Arial"
font-size="20" font-weight="400" >
Текст 400
</text>
<text x="10" y="310" font-family="Arial"
font-size="20" font-weight="500" >
Текст 500
</text>
<text x="10" y="345" font-family="Arial"
font-size="20" font-weight="600" >
Текст 600
</text>
<text x="10" y="380" font-family="Arial"
font-size="20" font-weight="700" >
Текст 700
</text>
<text x="10" y="415" font-family="Arial"
font-size="20" font-weight="800" >
Текст 800
</text>
<text x="10" y="450" font-family="Arial"
font-size="20" font-weight="900" >
Текст 900
</text>
</svg>
|
![]() |
| Описание | ||
Примеры использования свойства font-weight, поддерживающего именованные и числовые значения. |
||
| № | Код | Вид в браузере |
| 4.2.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="200"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text7.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-style="normal" >
Обычный текст
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-style="italic" >
Курсивный текст
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-style="oblique" >
Курсивный текст
</text>
</svg>
|
![]() |
| Описание | ||
Получение курсивного текста. Значение атрибута задает курсивное начертание строк прописными буквами. |
||
| № | Код | Вид в браузере |
| 4.2.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="445"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text8.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="20" font-stretch="normal" >
font-stretch
</text>
<text x="10" y="65" font-family="Arial"
font-size="20" font-stretch="wider" >
font-stretch
</text>
<text x="10" y="100" font-family="Arial"
font-size="20" font-stretch="normal" >
font-stretch
</text>
<text x="10" y="135" font-family="Arial"
font-size="20" font-stretch="narrower" >
font-stretch
</text>
<text x="10" y="170" font-family="Arial"
font-size="20" font-stretch="ultra-condensed" >
font-stretch
</text>
<text x="10" y="205" font-family="Arial"
font-size="20" font-stretch="extra-condensed" >
font-stretch
</text>
<text x="10" y="240" font-family="Arial"
font-size="20" font-stretch="condensed" >
font-stretch
</text>
<text x="10" y="275" font-family="Arial"
font-size="20" font-stretch="semi-condensed" >
font-stretch
</text>
<text x="10" y="310" font-family="Arial"
font-size="20" font-stretch="semi-expanded" >
font-stretch
</text>
<text x="10" y="345" font-family="Arial"
font-size="20" font-stretch="expanded" >
font-stretch
</text>
<text x="10" y="380" font-family="Arial"
font-size="20" font-stretch="extra-expanded" >
font-stretch
</text>
<text x="10" y="415" font-family="Arial"
font-size="20" font-stretch="ultra-expanded" >
font-stretch
</text>
</svg>
|
![]() |
| Описание | ||
| Уплотненное и разреженное начертание слов. | ||
| № | Код | Вид в браузере |
| 4.2.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="445"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text9.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="16" kerning="auto" >
Кернинг
</text>
<text x="10" y="65" font-family="Arial"
font-size="16" kerning="10" >
Кернинг
</text>
<text x="10" y="100" font-family="Arial"
font-size="16" kerning="15" >
Кернинг
</text>
<text x="10" y="135" font-family="Arial"
font-size="16" kerning="20" >
Кернинг
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут , задающий межбуквенный интервал в числовых значениях. |
||
| № | Код | Вид в браузере |
| 4.2.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="160"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text10.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="16" letter-spacing="normal" >
Кернинг
</text>
<text x="10" y="65" font-family="Arial"
font-size="16" letter-spacing="10" >
Кернинг
</text>
<text x="10" y="100" font-family="Arial"
font-size="16" letter-spacing="15" >
Кернинг
</text>
<text x="10" y="135" font-family="Arial"
font-size="16" letter-spacing="20" >
Кернинг
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут аналогичен атрибуту |
||
| № | Код | Вид в браузере |
| 4.2.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="160"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text11.svg
</desc>
<text x="10" y="30" font-family="Arial"
font-size="12" word-spacing="normal" >
Интервал между словами
</text>
<text x="10" y="65" font-family="Arial"
font-size="12" word-spacing="10" >
Интервал между словами
</text>
<text x="10" y="100" font-family="Arial"
font-size="12" word-spacing="15" >
Интервал между словами
</text>
<text x="10" y="135" font-family="Arial"
font-size="12" word-spacing="20" >
Интервал между словами
</text>
</svg>
|
![]() |
| Описание | ||
| Атрибут word-spacing задает интервал между словами. | ||
| № | Код | Вид в браузере |
| 4.2.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="120"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text12.svg
</desc>
<text x="105" y="30" font-family="Arial"
font-size="16" text-anchor="start">
text-anchor
</text>
<text x="105" y="65" font-family="Arial"
font-size="16" text-anchor="middle">
text-anchor
</text>
<text x="105" y="100" font-family="Arial"
font-size="16" text-anchor="end">
text-anchor
</text>
</svg>
|
![]() |
| Описание | ||
| Выравнивание текста – слева, справа и по центру. | ||
| № | Код | Вид в браузере |
| 4.2.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="210" height="190"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text13.svg
</desc>
<defs>
<style type="text/css">
<![CDATA[
text
{
font-family: Arial;
font-size: 16;
}
text.ltr
{
direction:ltr;
unicode-bidi: bidi-override;
}
text.rtl
{
direction:rtl;
unicode-bidi: bidi-override;
}
]]>
</style>
</defs>
<text x="50" y="30" class="ltr" >
Направление
</text>
<text x="50" y="65" class="ltr">
Direction
</text>
<text x="50" y="100" class="rtl" >
Направление
</text>
<text x="50" y="135" class="rtl">
Direction
</text>
<text x="50" y="170" direction="rtl" unicode-bidi="bidi-override">
Просто текст
</text>
</svg>
|
![]() |
| Описание | ||
Атрибуты direction и unicode-bidi |
||
| № | Код | Вид в браузере |
| 4.2.14 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="250" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text14.svg
</desc>
<text x="125" y="30" writing-mode="lr" >
writing-mode="lr"
</text>
<text x="125" y="65" writing-mode="lr-tb">
writing-mode="lr-tb"
</text>
<text x="125" y="100" writing-mode="rl" >
writing-mode="rl"
</text>
<text x="125" y="135" writing-mode="rl-tb">
writing-mode="rl-tb"
</text>
<text x="125" y="170" writing-mode="tb">
writing-mode="tb"
</text>
<text x="160" y="170" writing-mode="tb-rl">
writing-mode="tb-rl"
</text>
<!--Вспомогательные фигуры-->
<line x1="125" y1="0" x2="125" y2="400"
stroke-width="1" stroke="blue"></line>
<line x1="0" y1="170" x2="250" y2="170"
stroke-width="1" stroke="blue"></line>
<line x1="160" y1="170" x2="160" y2="400"
stroke-width="1" stroke="blue"></line>
</svg>
|
![]() |
| Описание | ||
Атрибут writing-mode, задает направление написания текста относительно исходной точки с сохранением расположения букв слева направо. |
||
| № | Код | Описание |
| 4.2.15 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="450" height="300"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text15.svg
</desc>
<text x="10" y="30"
glyph-orientation-horizontal="0">
glyph-orientation-horizontal="0"
</text>
<text x="10" y="65"
glyph-orientation-horizontal="90">
glyph-orientation-horizontal="90"
</text>
<text x="10" y="100"
glyph-orientation-horizontal="180" >
glyph-orientation-horizontal="180"
</text>
<text x="10" y="135"
glyph-orientation-horizontal="270">
glyph-orientation-horizontal="270"
</text>
<text x="10" y="170"
glyph-orientation-horizontal="-90">
glyph-orientation-horizontal="-90"
</text>
<text x="10" y="205"
glyph-orientation-horizontal="-180">
glyph-orientation-horizontal="-180"
</text>
<text x="10" y="240"
glyph-orientation-horizontal="-270">
glyph-orientation-horizontal="-270"
</text>
</svg>
|
Атрибут позволит без труда получить "зеркальное" отображение текста |
| Вид в браузере | ||
![]() |
||
| № | Код | Вид в браузере |
| 4.2.16 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="300" height="450"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text16.svg
</desc>
<text x="10" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="0">
glyph-orientation-vertical="0"
</text>
<text x="45" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="90">
glyph-orientation-vertical="90"
</text>
<text x="80" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="180" > glyph-orientation-vertical="180"
</text>
<text x="115" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="270"> glyph-orientation-vertical="270"
</text>
<text x="150" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-90">
glyph-orientation-horizontal="-90"
</text>
<text x="185" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-180">
glyph-orientation-vertical="-180"
</text>
<text x="220" y="10" writing-mode="tb-rl"
glyph-orientation-vertical="-270">
glyph-orientation-vertical="-270"
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением "0" позволяет получить одно из наиболее употребительных оформлений текста. |
||
| № | Код | Вид в браузере |
| 4.2.17 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="320" height="280"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text17.svg
</desc>
<text x="30" y="30" font-size-adjust="0">
font-size-adjust="0"
</text>
<text x="30" y="65" font-size-adjust="0.4">
font-size-adjust="0.4"
</text>
<text x="30" y="100" font-size-adjust="0.5">
font-size-adjust="0.5"
</text>
<text x="30" y="135" font-size-adjust="1">
font-size-adjust="1"
</text>
<text x="30" y="170" font-size-adjust="1.1">
font-size-adjust="1.1"
</text>
<text x="30" y="205" font-size-adjust="1.2">
font-size-adjust="1.2"
</text>
<text x="30" y="240" font-size-adjust="1.3">
font-size-adjust="1.3"
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут со значением "0.5" достаточно близок к исходному тексту для шрифта Arial, принятому по умолчанию. |
||
| № | Код | Вид в браузере |
| 4.2.18 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="180"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример text18.svg
</desc>
<text x="30" y="30"
dominant-baseline="auto">
dominant-baseline="auto"
</text>
<text x="30" y="65"
dominant-baseline="hanging">
dominant-baseline="hanging"
</text>
<text x="30" y="100"
dominant-baseline="mathematical">
dominant-baseline="mathematical"
</text>
<text x="30" y="135">
text
</text>
<!--Вспомогательные фигуры-->
<line x1="10" y1="30" x2="250" y2="30"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="65" x2="250" y2="65"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="100" x2="250" y2="100"
stroke-width="1" stroke="blue"></line>
<line x1="10" y1="135" x2="250" y2="135"
stroke-width="1" stroke="blue"></line>
</svg>
|
![]() |
| Описание | ||
Наиболее употребительные значения атрибута dominant- позволяют задавать расположение строки относительно основной линии. |
||
Попробуем разместить в SVG - документе достаточно большой фрагмент текста:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPangramma.svg
</desc>
<text x="10" y="50">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</text>
</svg>
Несмотря на форматирование текста в коде в результате мы видим одну длинную строку, без разбиения на абзацы (рис. 4.2):
(рис 4.2) Пример textPangramma.svgЭлемент text не поддерживает перенос строк. Конечно, можно разбить этот фрагмент на три части и для каждой из них определить координаты элемента text. Но это не лучший способ. Для подобных задач в SVG – графике имеется элемент tspan, предназначенный для оформления отдельных фрагментов, слов или даже букв. Для рассматриваемого случая код должен выглядеть так:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>Пример tspanPangramma.svg</desc>
<text x="10" y="50">
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
<tspan x="10" dy="1em">
Съешь еще этих мягких французских булок, да выпей чаю.
Съешь еще этих мягких французских булок, да выпей чаю.
</tspan>
</text>
</svg>
Теперь все предложения помещаются в документе (рис. 4.3):
(рис 4.3) Пример tspanPangramma.svgЭлемент tspan помещается внутри элемент text и задает дополнительное форматирование при помощи атрибутов, значения которых приводятся в табл. 4.3
| № | Название |
|---|---|
| 4.3.1 | x |
| Описание | |
| Абсцисса текстовой строки отсчитываемая |
|
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
Совпадает с абсциссой данного элемента text |
|
| № | Название |
| 4.3.2 | y |
| Описание | |
| Ордината текстовой строки отсчитываемая |
|
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
| Совпадает с ординатой данного элемента text | |
| № | Название |
| 4.3.3 | dx |
| Описание | |
| Горизонтальный отступ текстового фрагмента, отсчитываемый относительно начальной позиции с учетом направления координатных осей (рис 4.4(рис 4.4) Атрибуты dx и dy элемента tspan | |
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.4 | dy |
| Описание | |
| Вертикальный отступ текстового фрагмента, отсчитываемый относительно начальной позиции с учетом направления координатных осей (см. рис. 4.4), т.е это относительная координата. | |
| Диапазон значений | |
<coordinate> см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.5 | rotate |
| Описание | |
| Поворот первого символа, заключенного в элемент tspan, относительно горизонтальной оси. Положительному росту значений угла соответствует направление вращения часовой стрелки. | |
| Диапазон значений | |
От 0 до 360 градусов <angle>, см. табл. 2.8 |
|
| Значение по умолчанию | |
0 |
|
| № | Название |
| 4.3.6 | |
| Описание | |
| Атрибут для выравнивания блоков текста относительно горизонтальной линии. Самый удобный способ написания верхних и нижних индексов. | |
| Диапазон значений | |
|
|
| Значение по умолчанию | |
|
В табл. 4.4 приводятся примеры использования элемента tspan.
| № | Код | Вид в браузере |
|---|---|---|
| 4.4.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100" xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan1.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red" > выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Шрифт и его размер задается в группе. Это оформление распространяется и на содержимое вложенного элемента tspan. Для выделения цветом и шрифтом отдельного слова применяется элемент tspan с атрибутами font-weight и fill элемента text. |
||
| № | Код | Вид в браузере |
| 4.4.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan2.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16" >
Быстрее,
<tspan font-weight="bold"
fill="red" > выше,</tspan>
сильнее
</text>
</svg>
|
![]() |
| Описание | ||
Шрифт и его размер задается внутри элемента text. Это оформление распространяется и на содержимое вложенного элемента tspan. |
||
| № | Код | Вид в браузере |
| 4.4.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan3.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16">
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
сильнее
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут dy задает вертикальное смещение содержимого элемента tspan, причем последующий текст также располагается на новом уровне. |
||
| № | Код | Вид в браузере |
| 4.4.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan4.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
<tspan dy="10">сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Для выравнивания последующего текста снова применяется элемент tspan со значением атрибута dy="10", которое возвращает текстовую строку на прежний уровень. |
||
| № | Код | Вид в браузере |
| 4.4.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan5.svg
</desc>
<text x="30" y="30" fill="blue"
font-family="Arial" font-size="16">
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10 10 -10 10"> выше,</tspan>
<tspan dy="0">сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Атрибут dy может использоваться для задания смещения отдельных букв. В данном случае для расположения четырех букв в слове "выше" применяется атрибут dy, состоящий из четырех значений, разделенных пробелами. |
||
| № | Код | Вид в браузере |
| 4.4.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan6.svg
</desc>
<text x="30" y="30" fill="blue" font-family="Arial"
font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-5 5 -5 5"> выше,</tspan>
<tspan dy="-5 5 -5 5 -5 5 -5">
сильнее</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Применение атрибутов dy для оформление слов из четырех и семи букв. |
||
| № | Код | Вид в браузере |
| 4.4.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan7.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="30"> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут dx задает горизонтальное смещение содержимое элемента tspan, причем последующий текст также располагается на новой позиции. |
||
| № | Код | Вид в браузере |
| 4.4.8 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan8.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="10 10 10 10 "> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут dx также может использоваться для задания смещения отдельных букв. В данном случае для расположения четырех букв в слове "выше" применяется атрибут dx, состоящий из четырех значений разделенных пробелами. |
||
| № | Код | Вид в браузере |
| 4.4.9 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan9.svg
</desc>
<g font-family="Arial" font-size="16" >
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
dx="10 -5 10 -5 "> выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
| Последовательное смещение отдельных букв позволяет получить эффект наложения. | ||
| № | Код | Вид в браузере |
| 4.4.10 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan10.svg
</desc>
<text x="30" y="30" fill="blue" font-family="Arial"
font-size="16" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-5 5 -5 5" dx="5 5 5 5">
выше,
</tspan>
<tspan dy="-5 5 -5 5 -5 5 -5"
dx="5 5 5 5 5 5 5">
сильнее
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
| Вертикальное и горизонтальное смещение букв. | ||
| № | Код | Вид в браузере |
| 4.4.11 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan11.svg
</desc>
<text fill="blue" font-family="Arial"
font-size="16">
<tspan x="30 45 60 75 90" y="50">
Верх и
</tspan>
<tspan x="45 60 75" y="100">
низ
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Задание расположения букв при помощи абсолютных координат x и y. |
||
| № | Код | Вид в браузере |
| 4.4.12 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan12.svg
</desc>
<text fill="blue" font-family="Arial"
font-size="16" >
<tspan x="30 40 50 60 70 80 90"
y="85 75 65 55 45 35 25 "> Быстрее, </tspan>
<tspan font-weight="bold" fill="red"
x=" 60 70 80 90" y="85 75 65 55">
выше,
</tspan>
<tspan x="90 100 110 120 130 140 150"
y="85 75 65 55 45 35 25 ">
сильнее
</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
Задание расположения букв при помощи наборов абсолютных координат x и y. |
||
| № | Код | Вид в браузере |
| 4.4.13 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan13.svg
</desc>
<g font-family="Arial" font-size="40" >
<text x="5" y="50" fill="blue" >
<tspan rotate="45 45 45 45 45"> Вкривь</tspan>
<tspan font-weight="bold" fill="red"
rotate="15">и</tspan>
<tspan rotate="-45 -45 -45 -45 -45">вкось</tspan>
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Атрибут rotate предназначен для поворота отдельных букв. |
||
| № | Код | Вид в браузере |
| 4.4.14 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="250"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan14.svg
</desc>
<g font-family="Arial" font-size="16">
<text x="30" y="30" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="baseline" > выше,</tspan>
сильнее
</text>
<text x="30" y="80" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="sub" > выше,</tspan>
сильнее
</text>
<text x="30" y="130" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="super" > выше,</tspan>
сильнее
</text>
<text x="30" y="180" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="-100%" > выше,</tspan>
сильнее
</text>
<text x="30" y="230" fill="blue" >
Быстрее,
<tspan font-weight="bold" fill="red"
baseline-shift="5" > выше,</tspan>
сильнее
</text>
</g>
</svg>
|
![]() |
| Описание | ||
Выравнивание текстового фрагмента относительно горизонтальной линии при помощи атрибута . Можно задавать также числовые значения смещения. |
||
| № | Код | Вид в браузере |
| 4.4.15 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="280" height="400"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tspan15.svg
</desc>
<!--Эмблема пожарного крана-->
<rect x="30" y="30"
height="50" width="50" fill="none"
stroke="red" stroke-width="5"></rect>
<text x="38" y="68" fill="red"
font-family="Arial" font-size="30">
<tspan dx="-16">K</tspan>
</text>
<!--Химическая формула воды-->
<text x="100" y="68" fill="blue"
font-family="Arial" font-size="40">
H
<tspan dy="12" font-size="20" dx="-10">2</tspan>
<tspan dy="-12" dx="-10" >O</tspan>
</text>
<!--Химическая формула серной кислоты-->
<text x="50" y="120" fill="orange"
font-family="Arial" font-size="40">
H
<tspan font-size="20"
baseline-shift="-10">2</tspan>
<tspan baseline-shift="0" >S</tspan>
<tspan baseline-shift="0" >O</tspan>
<tspan font-size="20"
baseline-shift="-10" >4</tspan>
</text>
<!--Эмблема, похожая на LaTeX-->
<text x="50" y="180" fill="black"
font-family="Times" font-size="40">
L
<tspan font-size="32"
dy="-5" dx="-21">A</tspan>
<tspan dy="5" dx="-12">T</tspan>
<tspan dy="7" dx="-13">E</tspan>
<tspan dy="-7" dx="-13">X</tspan>
</text>
<!--Биквадратное уравнение-->
<text x="20" y="250" fill="green"
font-family="Comic Sans MC" font-size="30">
ax
<tspan baseline-shift="super"
font-size="20">4</tspan>
+bx
<tspan baseline-shift="super"
font-size="20">2</tspan>
+с=0
</text>
<!--Эмблема хакеров-->
<text x="20" y="300" fill="black"
font-family="Verdana" font-size="40">
0 1 0
<tspan x="20" y="340" >0 0 1</tspan>
<tspan x="20" y="380"> 1 1 1</tspan>
</text>
<!--Cноска на икс в квадрате-->
<text x="160" y="350" fill="black"
font-family="Verdana" font-size="60">
X
<tspan baseline-shift="super" font-size="30"
dx="-15" >2</tspan>
<tspan dy="-50" font-size="15"
dx="-15"> 2</tspan>
</text>
</svg>
|
![]() |
| Описание | ||
| Несколько примеров, иллюстрирующих возможности SVG – графики создания сложных текстовых элементов. Все эти строки остаются текстом, который может быть скопирован. | ||
Элемент tspan также может содержать все прочие атрибуты элемента text кроме свойств writing-mode, и text-anchor.
В большом SVG – документе может возникнуть потребность в многократной вставке одного и того же блока текста. Для уменьшения размера файла в этом случае удобнее использовать ссылку на однократно определенный
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="50" y="50"></tref>
</text>
Исходный фрагмент помещается в секцию defs, а далее он может быть отображен в любом месте документа при помощи элемента tref, помещаемого внутри элемента text. В табл. 4.5 приводятся примеры применения этого элемента.
| № | Код | Вид в браузере |
|---|---|---|
| 4.5.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tref1.svg
</desc>
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="50" y="50"></tref>
</text>
</svg>
|
![]() |
| Описание | ||
Простая вставка определенного фрагмента текста в документ. Без вставки элемента tref исходный фрагмент, определенный в секции defs, виден не будет. |
||
| № | Код | Вид в браузере |
| 4.5.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример tref2.svg
</desc>
<defs>
<text id="myText" >
Простой текст
</text>
</defs>
<text>
<tref xlink:href="#myText" x="30" y="50"
font-family="Arial" font-size="20"
fill="red"></tref>
</text>
</svg>
|
![]() |
| Описание | ||
| Вставка текстового фрагмента с заданием оформления. | ||
Элемент tref также может содержать все прочие атрибуты элемента text кроме свойств writing-mode и .
Одной из самых интересных возможностей элемента text является привязка к произвольной траектории, определяемой элементом Path:
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text font-size="24" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
Поскольку элемент path, определяется в секции defs, то он остается
невидимым в SVG – документе даже при задании оформления кривой:
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</defs>
Ссылка на кривую задается при помощи элемента textPath. Атрибут startOffset, задаваемый в процентах, определяет расположение текста – 0 % соответствуют началу, а 100% - концу кривой. В табл. 4.6 приводятся примеры использования этого элемента.
| № | Код | Вид в браузере |
|---|---|---|
| 4.6.1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath1.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75"/>
</defs>
<text font-size="24" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
</svg>
|
![]() |
| Описание | ||
| Расположение текста на середине кривой. См. пример CubicCurve1.svg | ||
| № | Код | Вид в браузере |
| 4.6.2 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath2.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Для отображения кривой в документе элемент Path был добавлен в качестве обычной фигуры. |
||
| № | Код | Вид в браузере |
| 4.6.3 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath3.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="25%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
| Расположение текста в начале кривой. | ||
| № | Код | Вид в браузере |
| 4.6.4 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath4.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="75%">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75" style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
| Расположение текста в конце кривой. | ||
| № | Код | Вид в браузере |
| 4.6.5 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath5.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text font-size="12" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="95" >
Быстрее,
<tspan font-weight="bold" fill="red"
dy="-10"> выше,</tspan>
<tspan dy="10">сильнее</tspan>
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Элемент tspan может быть добавлен внутри текста, размещаемого на кривой. |
||
| № | Код | Вид в браузере |
| 4.6.6 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="200" height="100"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath6.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath" d="M25,75 C25,15 175,15 175,75" />
</defs>
<text
font-size="12" text-anchor="middle" fill="blue">
<textPath xlink:href="#myPath" startOffset="50%"
glyph-orientation-horizontal="270">
Текст на кривой
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 C25,15 175,15 175,75"
style="fill:none; stroke:green;stroke-width:3"/>
</svg>
|
![]() |
| Описание | ||
Применение атрибута для текста на кривой. |
||
| № | Код | Описание |
| 4.6.7 | <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="700" height="150"
xmlns="http://www.w3.org/2000/svg" version="1.1">
<title>Лекция 4. Текст</title>
<desc>
Пример textPath7.svg
</desc>
<defs>
<!--Объект Path-->
<path id="myPath"
d="M25,75 Q100,25 175,75 T 325,75 T475, 75 T 625,75" />
</defs>
<text font-size="12" text-anchor="middle"
fill="blue">
<textPath xlink:href="#myPath" startOffset="50%" >
При рисовании кривых с повторяющимися фрагментами удобно использовать команду
T для упрощения кода.
</textPath>
</text>
<!--Вспомогательная фигура-->
<path d="M25,75 Q100,25 175,75 T 325,75 T475, 75 T 625,75"
style="fill:none; stroke:green;stroke-width:2"/>
</svg>
|
Размещение текста на квадратичной кривой Безье. См. QuadraticCurve5.svg |
| Вид в браузере | ||
![]() |
||
Читатели, знакомые с программой Corel Draw, несомненно, обратили внимание на возможность SVG – графики создавать текст с привязкой к траектории, поскольку такая опция есть в самой программе. Посмотрим на код, который генерирует Corel Draw при создании подобного SVG – рисунка. Выбираем инструмент рисования Безье (рис. 4.5) и проводим несколько линий.
(рис 4.5) Выбор инструмента "Кривая Безье"Выделяем созданный объект, в главном меню программы переходим "Text – Fit Text To Path" (рис. 4.6):
(рис 4.6) Привязка текста к заданной траекторииВводим текст – он размещается на траектории, затем экспортируем рисунок (рис. 4.7):
(рис 4.7) Экспорт готового изображенияВнимательно изучив созданный код, замечаем, что расположение текста на кривой достигается заданием абсолютных координат каждой буквы и ее поворотом (фрагмент кода TextOnAPathCorelDraw.svg):
<text x="2.07099" y="4.97302" class="fil1 fnt0"> <tspan rotate="407">T</tspan> </text> <text x="2.64671" y="5.59955" class="fil1 fnt0"> <tspan rotate="401">e</tspan> </text> <text x="3.35142" y="6.20915" class="fil1 fnt0"> <tspan rotate="391">x</tspan> </text> <text x="4.16422" y="6.68328" class="fil1 fnt0"> <tspan rotate="382">t</tspan> </text> <text x="4.58388" y="6.86955" class="fil1 fnt0"> <tspan rotate="373"> </tspan> </text> <text x="13.872" y="2.80555" class="fil1 fnt0"> <tspan rotate="373">t</tspan> </text> <text x="5.03741" y="7.02195" class="fil1 fnt0"> <tspan rotate="364">o</tspan> </text> <text x="5.97918" y="7.07275" class="fil1 fnt0"> <tspan rotate="349">n</tspan> </text> <text x="6.90402" y="6.85261" class="fil1 fnt0"> <tspan rotate="337"> </tspan> </text> <text x="7.34061" y="6.66635" class="fil1 fnt0"> <tspan rotate="327">a</tspan> </text> <text x="8.11305" y="6.14141" class="fil1 fnt0"> <tspan rotate="318"> </tspan> </text> <text x="9.82499" y="4.26182" class="fil1 fnt0"> <tspan rotate="318">t</tspan> </text> <text x="8.46497" y="5.81968" class="fil1 fnt0"> <tspan rotate="314">P</tspan> </text> <text x="9.22189" y="4.98995" class="fil1 fnt0"> <tspan rotate="310">a</tspan> </text> <text x="10.16" y="3.94009" class="fil1 fnt0"> <tspan rotate="322">h</tspan> </text>
Вывод, который мы делаем – Corel Draw не может генерировать код с корректным отображением привязки текста к траектории.
В этой лекции мы рассмотрели основные элементы и атрибуты SVG – графики для работы с текстом. Применение фильтров (см. Лекцию 7 и Лекцию 8) к тексту позволяет получать дополнительные эффекты – тень, размытие, текстуры.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.