Как изменить цвет текста в 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 именованных цветов, удобно для быстрых проверок |
| Hex | color: #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 не существует; браузер их игнорирует.