Pseudoelement CSSPseudoelementy

::backdrop

Stylizuje warstwę tła pod modalnym oknem dialog, elementem pełnoekranowym i otwartym popoverem.

Na tej stronie

Przykład

#
CSS
.modal::backdrop {
  background: rgb(12 12 16 / 0.6);
  backdrop-filter: blur(3px);
}

.modal {
  padding: 18px 20px;
  border: 1px solid #3f3f46;
  border-radius: 14px;
  background: #18181b;
  color: inherit;
}
Podgląd

Kliknij „Zakończ lekcję”, żeby otworzyć okno. Zamkniesz je przyciskiem w oknie albo klawiszem Esc.

Definicja i zastosowanie

#

Pseudoelement ::backdrop to pełnoekranowa warstwa, którą przeglądarka umieszcza tuż pod elementem wyświetlonym w warstwie wierzchniej (top layer). Pojawia się pod oknem <dialog> otwartym metodą showModal(), pod elementem w trybie pełnoekranowym i pod otwartym popoverem.

Dzięki niemu przyciemnisz albo rozmyjesz stronę pod oknem bez dodawania do HTML żadnej nakładki. Pod oknem dialogowym tło jest domyślnie lekko przyciemnione; zwykle nadaje się mu własny kolor z przezroczystością, a czasem także backdrop-filter: blur().

Okno otwarte metodą show() albo atrybutem open nie jest modalne i nie ma tła. ::backdrop istnieje tylko dla okna otwartego przez showModal(), które blokuje resztę strony i zamyka się klawiszem Esc.

Składnia

#
Składnia
selektor::backdrop { właściwość: wartość; }

Typowe style

#
  • rgb(0 0 0 / 0.7)

    Mocne przyciemnienie strony pod oknem. Kliknij „Otwórz okno”, a zamkniesz je przyciskiem albo klawiszem Esc.
  • rgb(124 58 237 / 0.45)

    Półprzezroczysty filtr w kolorze marki zamiast szarości.
  • blur(4px)

    Rozmycie strony pod oknem przez backdrop-filter. Treść w tle jest widoczna, ale nie rozprasza.
  • linear-gradient()

    Gradient zamiast jednolitego koloru, np. w barwach marki.

Typowe style w praktyce

#

rgb(0 0 0 / 0.7)

Mocne przyciemnienie strony pod oknem. Kliknij „Otwórz okno”, a zamkniesz je przyciskiem albo klawiszem Esc.
.demo::backdrop { background: rgb(0 0 0 / 0.7); }

rgb(124 58 237 / 0.45)

Półprzezroczysty filtr w kolorze marki zamiast szarości.
.demo::backdrop { background: rgb(124 58 237 / 0.45); }

blur(4px)

Rozmycie strony pod oknem przez backdrop-filter. Treść w tle jest widoczna, ale nie rozprasza.
.demo::backdrop {
  background: rgb(0 0 0 / 0.25);
  backdrop-filter: blur(4px);
}

linear-gradient()

Gradient zamiast jednolitego koloru, np. w barwach marki.
.demo::backdrop {
  background: linear-gradient(#7c3aed99, #0ea5e999);
}

Obsługa przeglądarek

#

Szeroko dostępne

Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.

  • Chrome
  • Edge
  • Firefox
  • Safari

Dobre praktyki

#
  • Okno, które ma być modalne, otwieraj przez showModal(), a nie atrybutem open. Tylko wtedy dostaje ::backdrop, blokuje resztę strony i zamyka się klawiszem Esc.
  • Kliknięcie w tło nie zamyka okna samo z siebie. Jeśli tego potrzebujesz, dopisz obsługę w JavaScripcie.
  • Płynne pojawianie się tła zrobisz animacją @keyframes nadaną ::backdrop, np. od pełnej przezroczystości do przyciemnienia.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.