Оформление текста в CSS
Оформление текста с помощью CSS. Задание размера шрифтов, высоты строки, выравнивание, задание цвета и отступы текста.
Свойство font-size
font-size и размер шрифтов.
Наиболее важный параметр текста, которым можно управлять, — это шрифт.
Выбор конкретного шрифта, его размера, начертания и насыщенности — все эти свойства мы рассмотрим последовательно. Размер шрифта регулируется свойством font-size, значение которого определяет желаемую высоту символа шрифта.
Единицы измерения могут быть как абсолютными, так и относительными. Наиболее распространенной единицей измерения размера шрифта являются пиксели (px):
p {
font-size: 20px;
}
Относительный размер шрифта
Абсолютные размеры шрифта представляют собой простую, однако не слишком гибкую систему, которая используется преимущественно в простых ситуациях.
К примеру, для всего документа зададим размер шрифта:
body {
font-size: 16px;
}
Все дочерние элементы, у которых не задано значение размера шрифта, автоматически наследуют размер в 16 пикселей.
Заголовку на странице мы зададим другое фиксированное значение размера шрифта:
h1 {
font-size: 32px;
}
До сих пор все проходило гладко. Однако, предположим, что теперь возникло требование увеличить размер шрифта документа с 16px до 20px на больших мониторах. Если изменить размер шрифта у элемента body, то все его дочерние элементы также изменят свой размер. Однако, размер шрифта у заголовка останется неизменным — 32px.
Чтобы решить эту проблему, можно использовать специальную единицу измерения — em. Один em равен размеру шрифта родительского элемента. Таким образом, если мы хотим, чтобы шрифт дочернего элемента всегда был в два раза больше, чем у родителя, мы можем установить значение 2em:
h1 {
font-size: 2em;
}
Свойство line-height
Межстрочным интервалом в CSS управляет свойство line-height. Как и в случае с размером шрифта, значения line-height можно задавать разными способами.
По умолчанию свойство межстрочного интервала установлено в значение normal, что означает, что браузер должен автоматически определять подходящий интервал между строками, основываясь на размере шрифта. Согласно спецификации, рекомендуется устанавливать это значение в диапазоне от 100% до 120% от размера шрифта. То есть:
p {
font-size: 10px;
line-height: normal; /* значение будет примерно 12px */
}
Значение normal для свойства line-height обеспечивает читаемость всего нестилизованного текста. Тем не менее, если требуется отклониться от стандартной стилизации, можно установить для line-height фиксированное абсолютное значение в пикселях (px).
p {
font-size: 16px;
line-height: 26px;
}
Относительная высота строки
Итак, мы уже рассмотрели следующие варианты для line-height: 1. Относительное значение normal, которое вычисляется браузером автоматически в зависимости от font-size, и мы не можем управлять им напрямую. 2. Абсолютное значение в пикселях (px).
Если же нам требуется установить относительное значение, отличное от normal, это также возможно. Для этого значение line-height задается в процентах или в виде множителя. В таком случае браузер динамически вычисляет значение в зависимости от font-size.
p {
font-size: 10px;
line-height: 150%; /* вычисленное значение: 10px * 150% = 15px */
line-height: 2; /* вычисленное значение: 10px * 2 = 20px */
}
Как вы понимаете, относительные значения более гибкие, чем абсолютные.
Свойство font-family
Для определения используемого шрифта существует специальное свойство — font-family. В его значении перечисляется список названий шрифтов через запятую. Начинается список с наиболее предпочтительного шрифта, затем следуют менее предпочтительные, а в конце указывается общий тип шрифта. Браузер просматривает список слева направо и применяет первый найденный в системе или на сайте шрифт. Пример:
body {
font-family: "PT Sans", "Arial", sans-serif;
}
Если название шрифта включает в себя несколько слов, его необходимо заключить в кавычки. Одинарные названия шрифтов можно оставить без кавычек или заключить их в кавычки для сохранения единообразия. Если браузер не может найти ни один из перечисленных шрифтов на сайте или в операционной системе, он использует последнее указанное значение — общий системный тип шрифта.
Свойство font-weight. Определение насыщенности шрифта
Еще одним параметром шрифта, которым мы можем управлять, является его насыщенность или толщина. Шрифт может быть более жирным или более тонким по сравнению с обычным начертанием. Насыщенность шрифта регулируется с помощью свойства font-weight. Это свойство может принимать ключевые слова или числовые значения.
Наиболее распространенные значения включают:
- 400 или normal — это стандартное начертание шрифта, которое используется по умолчанию;
- 700 или bold — указывает на жирное начертание шрифта.Например
h1 {
font-weight: 400; /* то же самое что и normal */
}
p {
font-weight: bold; /* то же самое что и 700 */
}
Свойство text-align. Горизонтальное выравнивание текста
Свойство text-align определяет горизонтальное выравнивание текста внутри блочного элемента (хотя оно также может влиять на другие элементы, о которых мы поговорим позже). Это свойство может принимать несколько значений:
- left — текст выравнивается по левому краю блока, что является значением по умолчанию;
- right — текст выравнивается по правому краю блока;
- center — текст центрируется внутри блока;
- justify — текст растягивается по ширине блока, при этом слова в строке располагаются таким образом, чтобы равномерно заполнить всё доступное пространство. В результате пробелы между словами могут стать неравномерными, так как браузер растягивает их для заполнения строки.
Обратите внимание, что text-align применяется к блоку-контейнеру, содержащему текстовый контент.
/* HTML: */
<p>
Текст внутри абзаца
</p>
/* CSS: */
p {
text-align: center;
}
Свойство vertical-align. Вертикальное выравнивание текста
Если существует свойство для горизонтального выравнивания, то логично предположить, что должно быть и свойство для вертикального выравнивания. Действительно, такое свойство называется `vertical-align`. Оно предназначено для выравнивания инлайновых элементов относительно строки, в которую они встроены.
Рассмотрим простой пример использования `vertical-align`
для выравнивания изображения `` в текстовой строке. Это свойство имеет
несколько значений, но наиболее часто используются следующие:
- top - выравнивание по верхнему краю строки;
- middle - выравнивание по центру строки;
- bottom - выравнивание по нижнему краю строки;
- baseline (значение по умолчанию) - выравнивание по базовой линии строки.
Важно отметить, что в отличие от text-align, которое применяется к контейнеру, vertical-align задается непосредственно самому элементу, что позволяет точно контролировать его вертикальное расположение внутри строки.
/* HTML */
<p>
<img src="picture.png" alt="Картинка">
Текст внутри абзаца
</p>
/* CSS */
img {
vertical-align: middle;
}
Использование фона для оформления текста
Один из ключевых параметров текста — это его цвет, который управляется свойством color в CSS. В этом контексте, важно также рассмотреть использование цвета фона блока для оформления текста и принципы сочетания цвета фона с цветом текста.
В CSS цвет обычно задается в шестнадцатеричном формате, начинающемся с символа решетки (#).
Например:
.text-block {
color: #000000; /* черный цвет текста */
background-color: #FFFFFF; /* белый цвет фона */
}
При выборе сочетаний цветов текста и фона следует учитывать контрастность, чтобы текст был четким и легко читаемым. Например, темный текст на светлом фоне или светлый текст на темном фоне обеспечивают хорошую видимость.
Фоновое изображение для блока задаётся свойством background-image, а фоновый цвет — свойством background-color:
div {
background-image: url("путь_к_файлу_изображения.png");
background-color: #cccccc;
}
Фоновое изображение и фоновый цвет блока всегда должны достаточно сильно контрастировать с цветом текста. Чем больше контраст, тем удобнее читается текст в разных условиях освещённости и на разных устройствах. Поэтому если вы задаёте блоку фоновое изображение, нужно обязательно дополнительно задавать подходящий фоновый цвет. В этом случае, пока изображение загружается, или в случае, если оно совсем не загрузится, текст всё равно можно будет прочитать:
p {
/* идеальный контраст: цвет текста белый, цвет фона — чёрный */
background-color: #000000;
color: #ffffff;
}
span {
/* плохой контраст: цвет текста и фона — серые */
background-color: #cccccc;
color: #dddddd;
}
Свойство color. Цвет текста
Разберемся со значениями color и backgroud-color
Цвет может быть задан в виде ключевого слова
Например:
color: black; /* чёрный цвет */
color: red; /* красный цвет */
color: white; /* белый цвет */
Самый распространенный вариант указания цветов - это шеснадцатиричое значение. В данном контексте цвет определяется комбинацией красного, зелёного и синего компонентов, которые задаются в виде шестнадцатеричных чисел от 00 до FF. Если цветовые коды состоят из трех символов, то второй символ каждой составляющей повторяет первый, что позволяет быстро задавать цвета с удвоенной интенсивностью каждого компонента.
color: #000000; /* чёрный цвет */
color: #f00; /* красный цвет, то же что #ff0000 */
color: #fff; /* белый цвет, то же что #ffffff */
Если избегать использования шестнадцатеричных кодов, можно использовать функцию rgb, которая позволяет указывать цвета в десятичной системе от 0 до 255 для каждой из трех цветовых составляющих — красного, зеленого и синего, разделенных запятыми. Этот метод более интуитивно понятен и удобен.
color: rgb(0, 0, 0) /* чёрный, то же что #000000 */
color: rgb(255, 0, 0) /* красный, то же что #ff0000 */
color: rgb(255, 255, 255) /* белый, то же что #ffffff */
У функции rgb есть расширенная версия — rgba. В этом случае помимо указания цвета последним значением указывается степень непрозрачности цвета — alpha. Значение может быть от 0 (полностью прозрачный) до 1 (полностью непрозрачный):
color: rgba(0, 0, 0, 0.5) /* чёрный, непрозрачный на 50% */
color: rgba(255, 0, 0, 0.3) /* красный, непрозрачный на 30% */
color: rgba(255, 255, 255, 0.9) /* белый, непрозрачный на 90% */
Использование отступов для оформления текста
Для улучшения читаемости текста в блоке, важно обеспечить достаточное свободное пространство вокруг него. Текст не должен быть слишком прижат к границам блока, чтобы создать ощущение комфорта и легкости чтения. В CSS, для управления пространством вокруг текста, используются два свойства: padding, которое устанавливает внутренние отступы в пределах блока, и margin, которое определяет внешние отступы. Вот пример их применения:
.sometext {
padding: 10px; /* Внутренние отступы */
margin: 20px 0; /* Внешние отступы */
}
В примере выше задан внутренний отступ со всех сторон 10px, а также внешний отступ сверху и снизу 20px и 0px слева и справа.
Этот код демонстрирует, как можно регулировать пространство вокруг текста в блоке, чтобы улучшить его визуальное восприятие.
Свойство text-decoration. Подчёркивание и другие эффекты
Дополнительное оформление текста можно задать с помощью свойства text-decoration. Вот его значения:
underline — подчёркивание;
line-through — зачёркивание;
overline — надчёркивание;
none — убирает вышеперечисленные эффекты.
К тексту можно одновременно применить несколько эффектов, если перечислить значения через пробел:p {
text-decoration: underline; /* подчёркнутый текст */
}
span {
/* подчёркнутый и зачёркнутый текст */
text-decoration: underline line-through;
}
Свойство font-style. Курсив
Начертание текста можно задавать с помощью свойства font-style. Вот его основные значения:
normal — обычное начертание;
italic — курсивное начертание;
oblique — наклонное начертание.
Свойство text-transform. Регистр символов
С помощью CSS можно также управлять регистром символов: делать буквы строчными (маленькими) или заглавными (большими). Делается это с помощью свойства text-transform. Его значения:
lowercase — все строчные;
uppercase — все заглавные;
capitalize — каждое слово начинается с большой буквы;
none — отменяет изменение регистра.