Menu

Kolor tła w CSS: strona, elementy i przezroczystość

background-color wypełnia pudełko elementu kolorem. Dowiedz się, jak ustawić kolor tła całej strony, diva, wiersza tabeli albo jednego słowa, jak działa przezroczystość, dlaczego bgcolor jest przestarzały i czym background-color różni się od skrótu background.

Na tej stronie są działające edytory: edytuj, uruchamiaj i od razu zobacz wynik.

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żyj background-color.
  • Używanie opacity do prześwitującego tła. Przyciemnia też treść. Użyj koloru z alfą.
  • Skrót background po background-image. Resetuje obraz. Napisz zamiast tego background-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.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ