На этой странице:
Свойство text-indent
устанавливает величину отступа
первой строки текста в блоке (например, в параграфе).
На остальные строки влияния не оказывается.
Создание красных строк в тексте — самый распространённый случай использование этого свойства.
Допускаются отрицательные значения, поэтому можно создавать не только отступы, но и выступы.
|
|
Файл style.css
P { text-indent:1.5em; margin:0; } ![]() Красные строки на экранных страницах лучше не использовать: межабзацные промежутки гораздо весомее сигналят о паузе, значит, больше дружат с читателем. |
Файл index.htm
|
Свойство text-align
позволяет задавать выравнивание
текста относительно границ блока для которого это свойство задано.
Свойство |
|
Выравнивание текста по левому краю (text-align:left
)
является стандартным. Несмотря на рваный правый край, читать
комфортнее, по сравнению с чтением текста выровненным справа и даже
по ширине (в нешироких окнах).
При выравнивании справа (text-align:right
), рваный левый
край существенно затрудняет чтение. Это, конечно, справедливо только
для текстов, которые читаются слева направо (глаз спотыкается на
началах строк). Такое выравнивание можно использовать для очень
небольших текстовых фрагментов (эпиграфов, позиций меню, заголовков).
Когда центрируются строки большого текста
(text-align:center
), то наряду с некомфортным чтением (как и
при выравнивании справа), возникает ощущение беспорядка на экране: у
текста нет ни одного ровного края, а строчки всё равно выравниваются
не строго по центру — текст не имеет внятной осевой линии.
К сожалению, приятное значение justify
(выравнивание по
ширине) тоже имеет недостатки на текстах с длинными словами (русский,
немецкий язык). Браузер “не умеет” пока переносить слова по
слогам, поэтому на экране при выравнивании по ширине образуются
“дыры”:
Браузеры IE пятых версий по указанию text-align
выравнивают не только текст (как требует стандарт), но и блоки.
К счастью браузеры этих версий практически уже ушли со сцены.
Уясним, как CSS определяет устройство строки. Эта информация,
полезная сама по себе, поможет понять алгоритмы работы свойства
line-height
(высота строки) и свойства
vertical-align
(выравнивание по вертикали).
Прежде всего, давайте уточним, что понимается под размером шрифта.
|
Если задано |
Ответ на этот вопрос, возможно, вас удивит: всё зависит от того, как это расстояние определяет разработчик шрифта. То есть в каждом конкретном шрифте это расстояния задаётся по-разному.
Под размером шрифта понимается кегль, то есть высота кегельной площадки — прямоугольника, который отводится под символ шрифта.
|
Исторически понятие кегельной площадки связано с металлическим набором, когда буквы отливались на брусках из сплава свинца, сурьмы и олова. Такие бруски назывались литерами. Кегельная площадка — это верхняя прямоугольная часть литеры, на которой расположено выпуклое (печатающее) изображение буквы или другого знака (очко). |
|
Высоту кегельной площадки или кегль традиционно считают размером шрифта. Таким образом, размер шрифта определяется не высотой самого большого символа и не разницей между ушками и хвостиками в строке, а высотой прямоугольника, который отводится под символ. |
|
Высоту кегельной площадки определяет разработчик шрифта по дизайнерским соображениям. На металлической литере кегль всегда больше высоты любого отдельного символа. В цифровых шрифтах понятие кегельной площадки также сохранилось. Но цифровые дизайнеры имеют большую свободу: цифровая кегельная площадка может быть больше любого символа, может быть в точности равна разнице между ушками и хвостиками в строке, а может быть и такой, что хвостики выходят за её пределы. |
Кегельная площадка содержит один символ текста. Высота у всех кегельных
площадок в строке одинакова — одна и есть кегль или размер шрифта,
она же совпадает со значением свойства font-size
.
|
При записи текста кегельные площадки примыкают друг к другу и
образуют область содержимого строки. Высота области содержимого
равна |
|
К области содержимого сверху и снизу добавляется межстрочный
интервал. Получается строчный блок. Высота строчного
блока равна значению свойства
Таким образом, |
Посмотрим на всё это ещё раз на одной общей схеме:
На схеме обозначен ещё один важный элемент — базовая линия строки. Базовая линия — это воображаемая линия, проходящая по основаниям символов текста. Получается, что сами символы стоят на базовой линии, а хвостики (у кого они есть) свисают вниз.
Но это ещё не всё! Отдельные элементы в строке могут иметь собственный кегль и свою высоту строки. Прямоугольник, который охватывает все строчные блоки строки, называется контейнером строки.
Вот теперь мы готовы к рассмотрению свойств line-height
и
vertical-align
.
Свойство
Разница между |
|
С помощью line-height
можно управлять интерлиньяжем.
В этом абзаце высота строки задана равной размеру шрифта (20 пикселам). Получается, что межстрочный интервал равен нулю. |
P { font-size:20px; line-height:20px; } |
В этом абзаце высота строки задана в виде числа |
P { font-size:20px; line-height:1.2; } |
В этом абзаце высота строки задана как |
P { font-size:20px; line-height:80%; } |
Сразу следует отметить, что свойство vertical-align
предназначено для вертикального выравнивания элементов относительно
частей строки, а не для выравнивания самих строк по отношению к
содержащему их блоку (как обычно считают новички).
По умолчанию базовые линии всех элементов выравниваются по базовой линии строки,
в которой они находятся.
В рассмотренном ниже примере по базовой линии выровнены и элемент
В этом абзаце есть выделенный
элемент,
для которого шрифт увеличен
в 2 раза, а также картинка:
Если у элемента нет базовой линии (как у картинки), то по базовой линии строки выравнивается его низ. |
|
Значение sub
превращает элемент в подстрочный, то есть
смещает его базовую линию ниже базовой линии строки.
Значение super
выполняет обратное —
поднимает базовую линию элемента выше базовой линии строки.
Величина смещения не определяется CSS, она зависит от браузера.
Значения sub
и super
не меняю
размер шрифта элемента.
Рассмотрим пару примеров.
Масса электрона примерно равна 10-27г, она в 3700 раз меньше массы молекулы водорода, наименьшей из всех молекул. |
...10<SPAN>-27</SPAN>г,... SPAN { vertical-align:super; font-size:0.8em; } |
Когда нужно уточнить, в какой системе записано число, к нему приписывают снизу основание системы: 8fd16. |
...системы: 8fd<SPAN>16</SPAN>. SPAN { vertical-align:sub; font-size:0.8em; } |
Рассмотрим значения
bottom
и
text-bottom
.
bottom
Выравнивает низ строчного блока элемента по низу контейнера строки.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
После выравнивания:
|
После выравнивания базовые линии не совпадают. Низ строчного блока элемента опустился до низа контейнера строки. |
Текст и
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:bottom; } |
text-bottom
Выравнивает низ строчного блока элемента по нижней кромке текста строки.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
После выравнивания:
|
Выравнивает низ строчного блока элемента по хвостикам основного текста строки. Основной текст — это текст без дополнительной разметки. На картинке слева к основному тексту относится слово “строка”, слово “это” имеет особую разметку и при выравнивании элемента в расчёт не берётся. |
Текст и
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:text-bottom; } |
Значения
top
и
text-top
оказывают
симметричные действия по отношению к значениям
bottom
и
text-bottom
.
top
Выравнивает верх строчного блока элемента по верху контейнера строки.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
После выравнивания:
|
После выравнивания базовые линии не совпадают. Верх строчного блока элемента поднялся до верха контейнера строки. |
Текст и
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:top; } |
text-top
Выравнивает верх строчного блока элемента по верхней кромке текста строки.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
После выравнивания:
|
Выравнивает верх строчного блока элемента по “макушкам” букв основного текста строки. Основной текст — это текст без дополнительной разметки. На картинке слева к основному тексту относится слово “большой”, слово “это” имеет особую разметку и при выравнивании элемента в расчёт не берётся. |
Текст и
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:text-top; } |
Значение middle
чаще всего применяют к изображениям,
расположенным в строке.
До выравнивания:
|
До выравнивания низ картинки совпадал с базовой линией строки. |
После выравнивания:
Браузеры по-разному вычисляют |
Выравнивает середину строчного блока элемента (середину картинки)
по точке, которая лежит выше базовой линии строки на
Величина |
Текст и
б/у
Для картинки задано выравнивание Центр картинки располагается примерно в середине основного текста строки. |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:middle; } |
Значения vertical-align
, заданные в процентах, поднимают
или опускают базовую линию элемента (или нижний край картинки)
относительно базовой линии основного текста строки.
Проценты вычисляются от line-height
самого элемента,
а не от line-height
строки, в которой он находится.
Для картинки line-height
совпадает с её высотой.
Если процентное значение положительное, элемент поднимается, если отрицательное — опускается.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
|
Базовая линия элемента поднимается над базовой линией строки
на величину |
|
Базовая линия элемента опускается ниже базовой линии строки
на величину |
Текст и
б/у
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:50%; } |
Текст и
б/у
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:-50%; } |
Значения вертикального выравнивания, заданные в единицах длины, самые простые — положительные значения смещают элемент вверх, а отрицательные вниз на указанное расстояние.
До выравнивания:
|
До выравнивания базовая линия элемента совпадала с базовой линией строки. |
|
Элемент смещается вверх на 100 пикселов. |
|
Элемент смещается вниз на 100 пикселов. |
Текст и
б/у
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:2em; } |
Текст и
б/у
Для картинки задано выравнивание |
EM /* для первого слова */ { font-size:2em; line-height:200%; } IMG /* для картинки */ { vertical-align:-2em; } |
Значение свойства word-spacing
добавляется
к стандартному расстоянию между словами, то есть свойство
word-spacing
служит для изменения
расстояния между словами. Допускаются положительные и отрицательные
значения.
Слово — это любая последовательность символов, не содержащая разделителей и ограниченная разделителями с обеих сторон. Разделитель — это пробел, знак табуляции, начало или конец строки. |
|
Значение свойства letter-spacing
добавляется
к стандартному расстоянию между символами, то есть свойство
letter-spacing
служит для изменения
расстояния между символами. Допускаются положительные и отрицательные
значения.
|
Свойство text-transform
позволяет изменять
в тексте регистр букв.
Значения:
|
Свойство text-decoration
позволяет проводить линию под,
над и через текст.
Значения:
|
Свойство white-space
позволяет влиять на то, как браузер
обрабатывает пробелы и концы строк в документе.
HTML-код: <P> Тестирование — это защитная сеть вокруг вашей программы, последняя и порой единственная надежда на серьёзное повышение её качества до того, как она выйдет в свет. (<EM>Лу Гринзоу, «Философия программирования»/EM) |
Значения свойства:
|
Псевдоэлементы вводят в документ фиктивные элементы, что позволяет связывать с ними стилевые правила. Визитная карточка псевдоэлемента — двоеточие перед его названием.
Псевдоэлемент
:first-letter
обозначает первую букву
элемента.
|
Согласно правилу слева, первая буква каждого абзаца будет окрашена в красный цвет.
Выражение |
Псевдоэлемент
:first-line
обозначает первую строку
блока.
|
Согласно правилу слева, первая строка каждого абзаца будет переведена в верхний регистр.
Выражение |
Псевдоэлемент :first-letter
можно использовать со всеми
элементами, :first-line
— только с блоками.
В приведенной ниже таблице приведены свойства, которые можно
использовать при написании стилевых правил для псевдоэлементов
:first-letter
и :first-line
.
:first-letter |
:first-line |
---|---|
Все свойства font |
Все свойства font |
color |
color |
Все свойства background |
Все свойства background |
Все свойства margin |
Все свойства margin |
Все свойства padding |
Все свойства padding |
Все свойства border |
Все свойства border |
text-decoration |
text-decoration |
vertical-align (но не для плавающих блоков) |
vertical-align |
text-transform |
text-transform |
line-height |
line-height |
float |
|
letter-spacing |
letter-spacing |
word-spacing |
word-spacing |
Псевдоэлементы должны размещаться в самом конце селектора. Например,
запись P:first-line EM
неверная, а запись
BLOCKQUOTE P:first-line
— правильная.