Własność CSS background-image

> Dodaj do ulubionych

Własność CSS background-image umożliwia ustawienie jednego lub większej liczby obrazów graficznych w tle elementu.

Jeśli tych obrazów jest więcej niż jeden, to tworzą one kolejne warstwy, z których najbliższa użytkownikowi (na wierzchu) jest ta, która została zdefiniowana jako pierwsza. Na samym spodzie znajduje się warstwa koloru tła (definiowana za pomocą własności background-color), jeśli zostanie on określony.

Należy pamiętać, że własność background-image wstawia obrazy w tle elementów, a więc w obszarze, który z definicji nie stanowi najważniejszej części treści. Dlatego obrazy te nie powinny zawierać żadnych istotnych informacji, a jedynie stanowić detal dekoracyjny, którego brak nie byłby żadną stratą dla użytkownika.

Jest to istotne z punktu widzenia użytkowników z niepełnosprawnościami, którzy posługują się na przykład czytnikami ekranu – te programy nie mają dostępu do treści widocznej na obrazach.

Ważne dla znaczenia treści grafiki powinno się wstawiać na stronę nie za pomocą własności background-image, tylko za pomocą elementu HTML img.

Ponadto wraz z obrazem lub obrazami tła zawsze należy zdefiniować także kolor tła, aby zapewnić wystarczający kontrast dla treści na wypadek, gdyby obrazy z jakiegoś powodu nie zostały wczytane przez przeglądarkę.

Przykład

Poniżej znajduje się prosty przykład użycia własności background-image do wstawienia obrazu w tle elementu article:

article {
  background-image: url("obraz.png");
}

Ta reguła wstawia obraz o nazwie obraz.png w tle wszystkich elementów article na stronie.

Wartości i składnia

Własność background-image przyjmuje dwa typy wartości:

Wartością własności background-image może być lista wartości rozdzielanych przecinkami. Każda z wartości na tej liście definiuje osobną warstwę. Dotyczy to nawet słowa kluczowego none, które nie dodaje żadnego obrazu, ale tworzy kolejną warstwę na stosie.

Pozostałe własności tła, takie jak background-repeat, background-size czy background-position, określają inne właściwości obrazów wstawionych przez własność background-image i powinny mieć tyle samo wartości, co własność background-image. Jeśli mają ich za mało, to są one uzupełniane przez przeglądarkę przez cykliczne wykorzystanie dostępnych wartości, np.:

background-image: url("a.png"), url("b.png"), url("c.png"), url("d.png"), url("e.png");
background-position: top, right, bottom;

W tym przypadku własność background-position obrazowi a.png przypisze wartość top, obrazowi b.pngright, a obrazowi c.pngbottom. Na tym kończy się zasób wartości tej własności, więc dla kolejnych pozycji we własności background-image wartości z własności background-position będą pobierane od początku. W efekcie obrazowi d.png zostanie przypisana wartość top, a obrazowi e.png – wartość right. To samo dotyczy pozostałych własności dotyczących obrazu tła.

Jeśli wartości jest za dużo, to nadmiarowe pozycje zostają zignorowane.

Dodatkowe przykłady

Poniżej znajduje się parę dodatkowych przykładów użycia własności CSS background-image.

Gradient w tle elementu

Za pomocą własności background-image w tle elementu można ustawić dowolny typ gradientu obsługiwany przez CSS. W poniższym przykładzie w tle elementu section został ustawiony gradient stożkowy:

background-image: conic-gradient(red, green, blue);

Efekt:

Gradient stożkowy w tle elementu wstawiony za pomocą własności background-image

Obraz SVG w tle elementu

Poniżej znajduje się przykład pokazujący, jak za pomocą własności background-image wstawić grafikę SVG w tle elementu:

background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='310' width='400'%3E %3Ccircle cx='70' cy='70' r='65' stroke='red' fill='lightpink' stroke-width='5'/%3E%3C/svg%3E");

Efekt:

Grafika SVG ustawiona w tle elementu za pomocą własności background-image

Kilka obrazów w tle elementu

Aby wstawić kilka obrazów w tle elementu, należy zdefiniować listę ich definicji rozdzielanych przecinkami, np.:

background-image:
  url("filizanka.png"),
    
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='310' width='400'%3E %3Ccircle cx='190' cy='70' r='65' stroke='red' fill='lightpink' stroke-width='5'/%3E%3C/svg%3E"),
  
  linear-gradient(red, green, blue)
;

Efekt:

Kilka obrazów wstawionych w tle elementu za pomocą własności background-image

Jak widać, typy grafik można swobodnie mieszać i każdy z tych obrazów można kontrolować za pomocą pozostałych własności z grupy teł CSS.

Zastosowanie

Własność CSS background-image ma zastosowanie do wszystkich elementów HTML.

Podsumowanie

ZastosowanieWszystkie elementy HTML
Obsługiwane wartości
Wartość początkowanone
DziedziczenieNie
SpecyfikacjaCSS Backgrounds and Borders Module Level 3, własność background-image