Как задать цвет фона
background-color заливает цветом блок элемента, включая его padding и область под рамкой. Принимает любой цвет CSS.
Цвет страницы задан на body, карточка и уведомление на своих div, а выделение на строчном элементе. Строчные элементы получают фон только за своим текстом, строка за строкой.
Цвет фона всей страницы
Задайте background-color на body. Если у элемента <html> нет своего фона, браузер рисует фон body на все окно, даже там, где содержимое body заканчивается:
body {
background-color: #111827;
color: #f9fafb; /* change the text color too, for contrast */
}
Старый HTML-способ это <body bgcolor="black">. Атрибут bgcolor устарел на всех элементах, поэтому используйте CSS. Браузеры все еще учитывают его для старых страниц, и поэтому может показаться, что он работает.
Прозрачный фон
У каждого элемента изначально background-color: transparent, поэтому за ним виден родитель. Чтобы подкрасить блок и все равно видеть сквозь него, используйте цвет с альфа-каналом:
opacity: 0.5 тоже позволил бы видеть полосы, но заодно сделал бы бледным текст. Для полупрозрачного фона с непрозрачным текстом используйте цвет с альфой. Все способы его записать перечислены на странице про цвета.
Где рисуется цвет
По умолчанию фон доходит до внешнего края рамки (поэтому он виден сквозь пунктирную или полупрозрачную рамку). background-clip это меняет:
В первом блоке янтарный виден между штрихами. Во втором он останавливается на внутреннем крае рамки, а в третьем закрашена только область содержимого. Margin никогда не закрашивается: он всегда прозрачный.
Полосатые строки таблицы
Фон на каждой второй строке облегчает чтение широких таблиц:
background-color и сокращенное свойство background
background задает все свойства фона сразу. Любая часть, которую вы не указали, возвращается к значению по умолчанию, и на этом часто попадаются:
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background: #111827; /* also resets background-image to none */
}
.hero {
background-image: linear-gradient(#2563eb, #1e40af);
background-color: #111827; /* only the color; the gradient stays */
}
Используйте background-color, когда имеете в виду только цвет. Используйте background, когда задаете весь фон в одном месте, часто цвет плюс изображение; смотрите фоновое изображение.
Доступность: в паре с цветом текста
Цвет фона читается только рядом с цветом текста. Задавая одно, проверяйте другое: WCAG требует коэффициент контрастности не меньше 4.5:1 для основного текста. Темному фону нужен явно заданный светлый текст, потому что текст сохраняет унаследованный темный цвет.
Частые ошибки
bgcolor. Он устарел. Используйтеbackground-color.opacityдля полупрозрачного фона. Содержимое тоже бледнеет. Используйте цвет с альфой.- Сокращенная запись
backgroundпослеbackground-image. Она сбрасывает изображение. Пишитеbackground-color. - Ожидание, что margin покажет цвет. Margin находится за пределами фона. Для цветного пространства используйте padding.
- Темный фон с текстом по умолчанию. Задайте и светлый
color.
Часто задаваемые вопросы
Как изменить цвет фона в HTML?
Используйте свойство CSS background-color. Для всей страницы: body { background-color: #f3f4f6; }. Для одного элемента: <div style="background-color: #fef3c7;">.
Валиден ли еще bgcolor в HTML?
Нет. Атрибут bgcolor у <body>, <table> и <td> в HTML5 устарел. Браузеры все еще рисуют его для старых страниц, но правильный способ это background-color в CSS.
Как сделать цвет фона прозрачным?
Используйте цвет с альфа-каналом, например background-color: rgb(37 99 235 / 20%);. В отличие от opacity, текст внутри остается полностью видимым.
Чем background отличается от background-color?
background-color задает только цвет. background это сокращенная запись для всех свойств фона (цвет, изображение, позиция, размер, повтор, прикрепление, origin и clip), поэтому background: red; заодно сбрасывает фоновое изображение в none.
Почему цвет фона body заливает все окно?
Когда у элемента <html> нет собственного фона, браузер рисует фон body на всем холсте, даже за пределами блока body. Задайте фон html, если они должны различаться.