16  Текст

Содержание

Свойства, определённые в следующих разделах, влияют на визуальное представление символов, пробелов, слов и параграфов.


16.1 Отступы: качество 'text-indent'

'text-indent'
Значение:<length> | <percentage> | inherit
Начальное:0
Применяется:  к элементам яруса блока
Наследуется:да
Процентное:относительно ширины содержащего блока
Носитель:визуальный

Это качество специфицирует отступ первой строки текста в блоке. Вернее, оно специфицирует отступ первого бокса, всплывающего в 1-й строчный бокс блока. Бокс получает отступ касательно левого (либо правого, для итога справа-налево) края строчного бокса. Пользовательские агенты (ПА) обязаны отображать данный отступ как пробел.

Значения имеют дальнейший толк:

<length>
Отступ имеет фиксированный размер.
<percentage>
Процент от ширины содержащего блока.

Значение 'text-indent' может быть негативным, но могут быть ограничения, зависящие от реализации.

Пример(ы):

Отступ размером '3em' для текста.

  P { text-indent: 3em }

16.2 Выравнивание: качество 'text-align'

'text-align'
Значение:left | right | center | justify | <string> | inherit
Начальное:зависит от ПА и направления письма
Применяется:  к элементам яруса блока
Наследуется:да
Процентное:N/A
Носитель:визуальный

Это качество описывает, как выравнивается инлайн-содержимое блока.
Значения имеют дальнейший толк:

left, right, center, and justify
Выравнивает текст налево, вправо, по центру и по формату.
<string>
Специфицирует строку, в которой ячейки столбца таблицы будут выровнены (см. детали и пример в разделе Горизонтальное выравнивание в столбце). Это значение используется только к ячейкам таблицы. Если установлено в ином элементе, оно рассматривается как 'left' либо 'right', в зависимости от того, каково направление письма: 'direction' - 'ltr' либо 'rtl', соответственно.

Блок текста это стопка строчных боксов. В случаях 'left', 'right' и 'center', это качество специфицирует, как инлайн-боксы в всяком строчном боксе выравниваются касательно левой и правой сторон строчного бокса; выравнивание не производится касательно порта просмотра. В случае с  'justify', ПА может сжать инлайн-боксы в дополнение к уточнению их позиций. (См. также 'letter-spacing' и 'word-spacing'.)

Пример(ы):

Здесь обратите внимание, что, от того что 'text-align' наследуется, все элементы яруса блока внутри элемента DIV с 'class=center' получат своё инлайн-содержимое сцентрированным.

DIV.center { text-align: center }

Примечание. Фактический алгорифм выравнивания по формату зависит от ПА и языка письма.

Соответствующие пользовательские агенты (ПА) могут интерпретировать значение 'justify' как 'left' либо 'right', в зависимости от того, каково по умолчанию направление письма: слева-направо либо справа-налево, соответственно.


16.3 Декоративные эффекты

16.3.1 Подчёркивание, надчёркивание, перечёркивание и мигание: качество 'text-decoration'

'text-decoration'
Значение:none | [ underline || overline || line-through || blink ] | inherit
Начальное:none
Применяется:  ко каждым элементам
Наследуется:нет (см. текст)
Процентное:N/A
Носитель:визуальный

Это качество описывает декоративное оформление текста элемента. Если это качество специфицировано для элемента уровня блока, оно воздействует на всех потомков инлайн-яруса данного элемента. Если оно специфицировано (либо влияет на) элемент инлайн-уровня, оно воздействует на все боксы, генерируемые элементом. Если элемент не имеет содержимого либо текста (скажем, элемент IMG в HTML), ПА обязаны игнорировать данное качество.

Значения имеют дальнейший толк:

none
Не изготавливает декоративное оформление.
underline
Каждая строка текста подчёркнута.
overline
Каждая строка текста имеет над собой линию.
line-through
Каждая строка текста имеет посередине перечёркивающую линию.
blink
Текст мигает. От соответствующих ПА не требуется поддерживать это значение.

Цвет(а), нужный для декорирования текста, должен быть получен из значения свойства 'color'.

Это качество не наследуется, но боксы - потомки бокса блока обязаны быть сформатированы с тем же оформлением (скажем, все обязаны быть с подчёркиванием). Цвет оформления должен остаться тем же самым, даже если элементы-потомки имеют другие значения 'color'.

Пример(ы):

В дальнейшем примере для HTML, текстовое содержимое всех элементов A будет подчёркнуто:

A[href] { text-decoration: underline }

16.3.2 Оттенение текста: качество 'text-shadow'

'text-shadow'
Значение:none | [<color> || <length> <length> <length>? ,]* [<color> || <length> <length> <length>?] | inherit
Начальное:none
Применяется:  ко каждом элементам
Наследуется:нет (см. текст)
Процентное:N/A
Носитель:визуальный

Это качество принимает список разделённых запятыми результатов оттенения, применяемых к тексту элемента. Результаты оттенения используются в том порядке, в котором они специфицированы, и могут, таким образом, перекрываться один иным, но они никогда не перекрывают сам текст. Результаты оттенения не изменяют размеры бокса, но могут выходить за его пределы. Уровень стэка результата оттенения - тот же самый, что и самого элемента.

Каждый результат оттенения обязан специфицировать смещение оттенения и может по выбору специфицировать радиус рассеяния и цвет тени.

Смещение оттенения специфицируется двумя значениями <length>, указывающими расстояние от текста. Первое значение специфицирует расстояние по горизонтали справа от текста. Негативное значение по горизонтали помещает тень слева от текста. Второе значение специфицирует вертикальное расстояние под текстом. Негативное значение по вертикали помещает тень сверху от текста.

Радиус рассеяния может быть по выбору специфицирован позже смещения оттенения. Радиус рассеяния это значение, обозначающее границы результата рассеяния. Точный алгорифм вычисления результата рассеяния не специфицирован.

Значение цвета может быть по выбору специфицировано до либо позже значений length результата оттенения. Значение цвета будет применяться как фундамент результата оттенения. Если цвет не специфицирован, взамен него будет применяться значение свойства 'color'.

Оттенения текста могут применяться совместно с псевдоэлементами :first-letter и :first-line.

Пример(ы):

Следующий пример установит тень справа и снизу от текста элемента. От того что цвет не специфицирован, тень будет того же цвета, что и сам элемент, и, от того что радиус рассеяния не специфицирован, тень текста не будет рассеиваться:

H1 { text-shadow: 0.2em 0.2em }

Следующий пример установит тень справа и снизу от текста элемента. Тень будет иметь радиус рассеяния 5px и алый цвет:

H2 { text-shadow: 3px 3px 5px red }

Следующий пример специфицирует список результатов оттенения. Первая тень будет справа и снизу от текста элемента и будет красного цвета без рассеяния. Вторая тень будет перекрывать первую и будет жёлтая, с рассеянием и помещена налево и ниже текста. Третья тень будет справа и сверху над текстом. От того что у неё цвет не специфицирован, будет применяться значение свойства  'color' элемента:

H2 { text-shadow: 3px 3px red, yellow -3px 3px 2px, 3px -3px }

Пример(ы):

Рассмотри данный пример:

SPAN.glow { 
    background: white; 
    color: white;
    text-shadow: black 0px 0px 5px;
}

Здесь свойства 'background' и 'color' имеют идентичные значения, и качество 'text-shadow' применяется для создания результата "солнечного  затмения":

Solar eclipse effect   [D]

Примечание. Это качество не определено в CSS1. Некоторые результаты оттенения (такие как в последнем примере) могут делать текст заметным в ПА, поддерживающих только CSS1.


16.4 Расстояния между буквами и словами: свойства 'letter-spacing' и 'word-spacing'

'letter-spacing'
Значение:normal | <length> | inherit
Начальное:normal
Применяется:  ко каждому элементам
Наследуется:да
Процентное:N/A
Носитель:визуальный

Это качество специфицирует расстояние между символами текста.
Значения имеют дальнейший толк:

normal
Нормальное расстояние для нынешнего шрифта. Это значение дозволяет ПА изменять расстояние между символами при выравнивании и разделении текста.
<length>
Обозначает межсимвольное пространство, дополнительное к значению по умолчанию. Значения могут быть негативными, но могут иметься ограничения в определенных реализациях. ПА могут не иметь возможности позже этого возможности изменять межсимвольное пространство для разделения и выравнивания текста.

Алгоритмы межсимвольного пространства самостоятельны от ПА. Межсимвольное пространство может также устанавливаться при выравнивании по формату (см. качество 'text-align').

Пример(ы):

В этом примере пространство между символами в элементах BLOCKQUOTE увеличено на '0.1em'.

BLOCKQUOTE { letter-spacing: 0.1em }

В дальнейшем примере ПАгенту не разрешено изменять межсимвольное пространство:

BLOCKQUOTE { letter-spacing: 0cm }   /* То же, что '0' */

Если расстояние-итог между двумя символами отличается от расстояния по умолчанию, ПА не обязаны применять лигатуры.

Соответствующие ПА могут рассматривать значение свойства 'letter-spacing' как 'normal'.

'word-spacing'
Значение:normal | <length> | inherit
Начальное:normal
Применяется:  ко каждом элементам
Наследуется:да
Процентное:N/A
Носитель:визуальный

Это качество специфицирует расстояние между словами.
Значения имеют дальнейший толк:

normal
Нормальное межсловное пространство, как определено нынешним шрифтом и/или ПА.
<length>
Это значение указывает межсловное пространство, дополняющее значение по умолчанию. Значения могут быть негативными, но могут существовать ограничения, в зависимости от определенной реализацией.

Алгоритмы межсловного пространства зависят от ПА. Межсловное пространство устанавливается также при выравнивании по формату (см. качество 'text-align').

Пример(ы):

Тут пространство между словами в элементах H1 увеличено на '1em'.

H1 { word-spacing: 1em }

Соответствующие ПА могут рассматривать значение качество 'letter-spacing' как 'normal'.


16.5 Капитализация: качество 'text-transform'

'text-transform'
Значение:capitalize | uppercase | lowercase | none | inherit
Начальное:none
Применяется:  ко каждом элементам
Наследуется:да
Процентное:N/A
Носитель:визуальный

Это качество управляет результатами капитализации текста элемента.
Значения имеют дальнейший толк:

capitalize
Переводит 1-й символ всякого слова в верхний регистр.
uppercase
Переводит все символы всякого слова в верхний регистр.
lowercase
Переводит все символы всего слова в нижний регистр.
none
Нет результатов капитализации.

Реальная трансформация зависит в всем определенном случае от языка письма. См. о методах определения языка элемента в RFC 2070 ([RFC2070]).

Соответствующие ПА могут рассматривать значение 'text-transform' как 'none' для тех символов, которые не входят в репертуар Latin-1, и для элементов на тех языках, в которых трансформация отличается от трансформации, специфицированной таблицей конвертации регистров для ISO 10646 ([ISO10646]).

Пример(ы):

Здесь каждый текст в элементе H1 переводится в верхний регистр.

H1 { text-transform: uppercase }

16.6 Пробел: качество 'white-space'

'white-space'
Значение:normal | pre | nowrap | inherit
Начальное:normal
Применяется:  к элементам яруса блока
Наследуется:да
Процентное:N/A
Носитель:визуальный

Это качество объявляет, как обрабатываются пробелы внутри элемента.
Значения имеют дальнейший толк:

normal
Это значение указывает ПАгентам, что необходимо сжимать последовательности пробелов и что необходимы обрывы строк для заполнения строк бокса. Добавочные обрывы строк могут создаваться с поддержкой ввода "\A" в генерируемом содержимом (скажем, для элемента BR в HTML).
pre
Это значение предотвращает сжатие ПАгентами последовательностей пробелов. Строки переносятся только в коде документа либо при происхождениях "\A" в генерируемом содержимом.
nowrap
Это значение сжимает пробелы, как 'normal', но подавляет обрывы строк в тексте, за исключением тех, которые создаются "\A" в генерируемом содержимом (скажем, для элемента  BR в HTML).

Пример(ы):

Следующие примеры показывают ожидаемое поведение пробелов в элементах PRE и P и признака "nowrap" HTML.

PRE        { white-space: pre }
P          { white-space: normal }
TD[nowrap] { white-space: nowrap }

Соответствующие ПА могут игнорировать качество 'white-space' в авторских и пользовательских таблицах жанров, но обязаны специфицировать для них значение в таблице жанров по умолчанию.