Menu

Цвет текста в HTML: как изменить цвет шрифта через CSS

Тег <font color> устарел; цвет текста в HTML задается свойством CSS color. Разберем, как покрасить всю страницу, одно слово, ссылку или заголовок именованными цветами, hex и rgb и как сохранить текст читаемым.

На этой странице есть исполняемые редакторы: меняйте, запускайте и сразу видите результат.

Как изменить цвет текста в HTML

Используйте свойство CSS color. Оно задает цвет текста элемента, и все элементы внутри наследуют тот же цвет, если не задают свой.

Свойство называется color, а не font-color или text-color. Таких имен в CSS нет, и они молча игнорируются.

Почему не тег font

Старые учебники показывают <font color="red">. Этот тег убрали из HTML много лет назад: валидаторы помечают его как ошибку, и он смешивает оформление с разметкой, так что смена цвета означает ручную правку каждого тега. Браузеры все еще рисуют его ради совместимости, и только поэтому кажется, что он работает.

<!-- obsolete -->
<font color="red">Warning</font>

<!-- use this -->
<span style="color: red;">Warning</span>

<!-- or better, a class you can change in one place -->
<span class="warning">Warning</span>

Как записать цвет

color принимает все форматы цветов CSS. Самые частые четыре:

ФорматПримерПримечание
Именованныйcolor: tomato;148 именованных цветов, удобно для быстрых проверок
Hexcolor: #2563eb;Самый распространенный в макетах
rgb()color: rgb(37 99 235);Красный, зеленый и синий от 0 до 255
hsl()color: hsl(221 83% 53%);Тон, насыщенность, светлота: легко сделать светлее или темнее

Hex, rgb() и hsl() могут принимать альфа-канал для полупрозрачного текста, например #2563eb80 или rgb(37 99 235 / 50%). Все форматы объяснены на странице про цвета в CSS.

Цвет всей страницы, заголовка или секции

Задайте цвет один раз на body и позвольте наследованию сделать остальное, а затем переопределите, где нужно:

Мягкий почти черный вроде #111827 или #374151 на белом приятнее для глаз, чем чистый #000000, и все равно воспринимается как черный.

Цвет ссылок

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

:hover, :visited и :focus-visible позволяют менять цвет для каждого состояния; они разобраны на странице про hover. Если ссылка того же цвета, что и окружающий текст, оставьте ей подчеркивание, чтобы ее все еще можно было узнать.

Сделайте текст читаемым: контрастность

Цвет текста это только половина пары, вторая половина это фон. WCAG требует коэффициент контрастности не меньше 4.5:1 для обычного текста и 3:1 для крупного (около 24px, или 19px жирным).

Светло-серый текст в стиле placeholder это самая частая ошибка. Инструменты разработчика Chrome и Firefox показывают коэффициент контрастности при просмотре цвета текста.

currentColor: повторное использование цвета текста

currentColor это ключевое слово, равное color элемента. Его могут использовать рамки, outline и встроенные SVG-иконки, поэтому одно изменение color перекрашивает и текст, и его украшения:

Частые ошибки

  • font-color или text-color. Свойство называется color.
  • Тег <font>. Он устарел; используйте CSS.
  • Ожидание, что ссылки унаследуют цвет. Задайте a { color: ... } или color: inherit.
  • Цвет как единственный сигнал. «Поля красным обязательны» не работает для тех, кто не различает красный. Добавьте текст или иконку.
  • Низкоконтрастный серый текст. Проверьте коэффициент: 4.5:1 или больше для основного текста.
  • opacity, чтобы осветлить текст. Она делает бледным весь элемент, включая фон и дочерние элементы. Используйте более светлый цвет или цвет с альфа-каналом.

Часто задаваемые вопросы

Как изменить цвет шрифта в HTML?

Используйте свойство CSS color в таблице стилей или атрибуте style: <p style="color: #2563eb;">Blue text</p>. Старый тег <font color> устарел.

Поддерживается ли еще тег <font>?

Браузеры все еще рисуют его, чтобы очень старые страницы продолжали работать, но в HTML он устарел, и валидаторы считают его ошибкой. Используйте вместо него CSS color.

Как изменить цвет одного слова?

Оберните слово в <span> и задайте ему цвет: This is <span style="color: #dc2626;">red</span>. Если слово еще и важно или выделено интонацией, используйте <strong> или <em> вместо <span>.

Почему ссылка не меняет цвет, когда я задаю color родителю?

У ссылок есть свой цвет из таблицы стилей браузера, поэтому они не наследуют цвет родителя. Задайте его самой ссылке (a { color: #2563eb; }) или используйте a { color: inherit; }, чтобы она следовала за родителем.

В CSS пишется font-color или color?

color. Свойств font-color и text-color не существует; браузер их игнорирует.

Coddy programming languages illustration

Учитесь программировать с Coddy

НАЧАТЬ