Jak ustawić kolor tła
background-color wypełnia kolorem pudełko elementu razem z jego paddingiem i obszarem pod obramowaniem. Przyjmuje dowolny kolor CSS.
Kolor strony jest ustawiony na body, karta i komunikat na swoich elementach div, a podświetlenie na elemencie liniowym. Elementy liniowe dostają tło tylko za swoim tekstem, linijka po linijce.
Kolor tła całej strony
Ustaw background-color na body. Jeśli element <html> nie ma własnego tła, przeglądarka maluje tło body na całym oknie, nawet tam, gdzie kończy się treść body:
body {
background-color: #111827;
color: #f9fafb; /* change the text color too, for contrast */
}
Dawniej w HTML pisało się <body bgcolor="black">. Atrybut bgcolor jest przestarzały na każdym elemencie, więc używaj CSS. Przeglądarki nadal go obsługują ze względu na stare strony, dlatego może się wydawać, że działa.
Przezroczyste tło
Każdy element zaczyna z background-color: transparent, więc widać przez niego rodzica. Żeby zabarwić pudełko i nadal widzieć, co jest pod nim, użyj koloru z kanałem alfa:
opacity: 0.5 też pokazałoby paski pod spodem, ale przyciemniłoby również tekst. Dla prześwitującego tła z pełnym tekstem użyj koloru z alfą. Na stronie o kolorach znajdziesz wszystkie sposoby jego zapisu.
Gdzie maluje się kolor
Domyślnie tło sięga zewnętrznej krawędzi obramowania (więc prześwituje przez przerywane albo półprzezroczyste obramowanie). Zmienia to background-clip:
W pierwszym pudełku bursztynowy kolor widać między kreskami. W drugim kończy się na wewnętrznej krawędzi obramowania, a w trzecim kolorowy jest tylko obszar treści. Margines nigdy nie jest malowany: zawsze jest przezroczysty.
Wiersze tabeli w paski
Tło na co drugim wierszu ułatwia przeglądanie szerokich tabel:
background-color a skrót background
background ustawia wszystkie właściwości tła naraz. Każda część, którą pominiesz, wraca do wartości domyślnej, co często zaskakuje:
.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 */
}
Używaj background-color, gdy chodzi ci tylko o kolor. Używaj background, gdy ustawiasz całe tło w jednym miejscu, często kolor razem z obrazem; zobacz background-image.
Dostępność: dopasuj kolor tekstu
Kolor tła jest czytelny tylko w parze z kolorem tekstu. Gdy ustawiasz jeden, sprawdź drugi: WCAG wymaga dla zwykłego tekstu współczynnika kontrastu co najmniej 4.5:1. Ciemne tło wymaga jawnie ustawionego jasnego tekstu, bo tekst zachowuje odziedziczony ciemny kolor.
Częste błędy
- Używanie
bgcolor. Jest przestarzały. Użyjbackground-color. - Używanie
opacitydo prześwitującego tła. Przyciemnia też treść. Użyj koloru z alfą. - Skrót
backgroundpobackground-image. Resetuje obraz. Napisz zamiast tegobackground-color. - Oczekiwanie, że margines pokaże kolor. Margines leży poza tłem. Kolorową przestrzeń zrób paddingiem.
- Ciemne tło z domyślnym tekstem. Ustaw też jasny
color.
Najczęściej zadawane pytania
Jak zmienić kolor tła w HTML?
Użyj właściwości CSS background-color. Dla całej strony: body { background-color: #f3f4f6; }. Dla jednego elementu: <div style="background-color: #fef3c7;">.
Czy bgcolor nadal działa w HTML?
Nie. Atrybut bgcolor na <body>, <table> i <td> jest w HTML5 przestarzały. Przeglądarki wciąż go rysują na starych stronach, ale właściwy sposób to background-color w CSS.
Jak zrobić przezroczysty kolor tła?
Użyj koloru z kanałem alfa, na przykład background-color: rgb(37 99 235 / 20%);. W przeciwieństwie do opacity tekst w środku pozostaje w pełni widoczny.
Czym różni się background od background-color?
background-color ustawia tylko kolor. background to skrót dla wszystkich właściwości tła (koloru, obrazu, pozycji, rozmiaru, powtarzania, przewijania, origin i clip), więc background: red; resetuje też obraz tła do none.
Dlaczego kolor tła body wypełnia całe okno?
Gdy element <html> nie ma własnego tła, przeglądarka maluje tło body na całym obszarze okna, nawet poza pudełkiem body. Nadaj html tło, jeśli chcesz, żeby te dwa się różniły.