Tło

Właściwość background w CSS pozwala nam umieścić tło na niemal dowolnym znaczniku HTML i będzie ono wyświetlane pod zawartością tego tagu. Jako tło możemy ustawić jednolity kolor, grafikę lub gradient (kilka kolorów gładko przechodzących jeden w drugi). Właściwość ta jest dość popularna i daje nam możliwość osiągania naprawdę fajnych efektów na stronie, więc przyjrzymy się wszystkim właściwością związanym z background (jak to zwykle w CSS bywa, background będzie jedną właściwością (tzw. shorthand), za pomocą której będziemy mogli zapisać wszystkie poznane poniżej pojedyncze właściwości).

1. background-image

Właściwość ta pozwala nam na ustawienie grafiki lub gradientu jako tła wybranego elementu. Ustawienie grafiki jest podobne do tego, jak wskazujemy źródło dla znacznika <img alt="" />, a więc podajemy po prostu adres URL umieszczony w funkcji url():

div {
	background-image: url(img/grafika.png);
}

Z kolei, jeżeli naszym celem jest umieszczanie gradientu, wtedy musimy skorzystać z funkcji linear-gradient() dla gradientu liniowego lub radial-gradient() dla gradientu radialnego (promieniowego).

Gradient liniowy będzie nam rozmieszczał kolory w wybranym przez nas kierunku (np. od lewej do prawej, od góry do dołu) lub dodatkowo jeszcze pod wybranym przez nas kontem (np. 45 stopni). Domyślnie gradient nakładany jest w kierunku góra-dół ⬇

Gradient radialny rozpocznie nam przechodzenie kolorów w sposób promienisty – trochę na wzór świecącego Słońca. Możemy w tym przypadku określić, w którym miejscu będzie znajdowało się “centrum” rozchodzenia kolorów. Najlepiej zobaczyć to na przykładzie:

Więcej niż jedno tło

Na każdy element możemy nałożyć więcej niż jedno tło i tym samym mieszać ze sobą np. grafiki oraz gradienty. W tym celu wystarczy podać kilka wartości rozdzielonych przecinkami:

div {
	/* Grafika logo.png wyświetli się "nad" grafiką "image.png". */
	background-image: url(logo.png), url(image.png);

	/* Gradient zostanie nałożony na grafikę. Jako jeden z kolorów możemy podać 
  wartość "transparent", tworząc dzieki temu ładnie wyglądające przejście. */
	background-image: linear-gradient(black, white), url(image.png);
}

2. background-repeat

W przypadku gdy na tło wybierzemy grafikę mniejszą niż wielkość stylowanego elementu, wtedy CSS będzie próbował pokryć całą dostępną powierzchnię, replikując grafikę. Możemy nadpisać to domyślne zachowanie w następujący sposób:

3. background-position

Za pomocą tej właściwości możemy umieścić grafikę wybraną jako tło w dowolnym miejscu naszego elementu:

4. background-size

Właściwość ta pozwala nam zarówno ustawić szerokość / wysokość tła (samego tła, nie elementu, na który nakładamy tło), jak i zdecydować o tym, czy grafika powinna wypełnić całą dostępną przestrzeń (i tym samym być może “uciąć” nieco boków), czy może powinna zostać wyświetlona w całości i ewentualnie wtedy nie zapełnić całego tła.

Dostępne wartości dla tej właściwości to:

  • cover – zmniejsz lub powiększ grafikę tak, aby zapełniła całe tło,
  • contain – wyświetl zawsze całą grafikę,
  • jedna wartość wyrażona w px, %, vh itp. – ustaw tę wartość jako szerokość i dobierz wysokość automatycznie,
  • dwie wartości – ustaw odpowiednio szerokość oraz wysokość.

Spójrzmy na przykłady:

5. background-attachment

Bardzo ciekawa właściwość, dzięki której możemy określić, w jaki sposób ma zachować się grafika podczas scrollowania strony. Do naszej dyspozycji dostaliśmy trzy wartości:

  • scroll – wartość domyślna, tło scrollowane jest razem z głównym oknem,
  • fixed – tło pozostaje nieruchome podczas scrollowania,
  • local – pozwala na scrollowanie tła wewnątrz innego, scrollowalnego okna.

6. background-origin / background-clip

Za pomocą tych dwóch właściwości możemy jeszcze dokładniej określić, gdzie chcemy umieścić tło na elemencie, który posiada zarówno margin i padding. Dozwolone wartości dla tej właściwości:

  • border-box – obraz zajmie całą przestrzeń wraz z obramowaniem,
  • padding-box – obraz zajmie przestrzeń z paddingiem, ale bez obramowania,
  • content-box – obraz zajmie przestrzeń tylko wewnątrz paddingu.

Jest to jedna z tych wartości CSS, którą dużo łatwiej jest zobrazować niż wytłumaczyć słownie 🙂

7. background-color

Na sam koniec została nam w sumie najłatwiejsza właściwość, czyli ustawienie jako tła jednolitego koloru.

div {
	background-color: red;
}

8. background (shorthand)

Jak już wspomnieliśmy sobie wcześniej, wszystkie powyższe właściwości można zapisać za pomocą jednej właściwości – background. Wartość dla tej właściwości wygląda następująco (zwróć uwagę na brak przecinków pomiędzy pojedynczymi wartościami):

div {
	background: url(image.png) /* grafika lub gradient */ top center / 200px 200px
		/* pozycja / rozmiar */ no-repeat /* duplikacja grafiki */ fixed /* zachowanie przy scrollu */
		padding-box /* origin */ content-box /* clip */ red; /* kolor */
}

Masz pytania lub uwagi?

discord icon Przejdź na Discord
Masz pytanie? Napisz do nas 👇
kontakt@frontstack.pl
Copyright © 2023 Frontstack