Spec-Zone.ru › CSS

Псевдоэлемент CSS `::backdrop`

Базовая поддержка Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она поддерживается браузерами с марта 2022 года.

::backdrop — это CSS-псевдоэлемент, представляющий собой область размером с область просмотра. Он отображается непосредственно под любым элементом, помещённым в верхний слой.

Попробуйте

button {
  font-size: 1.2rem;
  padding: 5px 15px;
}

dialog::backdrop {
  background-color: salmon;
}
<button id="showDialogBtn">Show a dialog</button>

<dialog id="favDialog">
  <form method="dialog">
    <p>The background shown outside of this dialog is a backdrop.</p>
    <button id="confirmBtn">Close the dialog</button>
  </form>
</dialog>
const showDialogBtn = document.getElementById("showDialogBtn");
const favDialog = document.getElementById("favDialog");

showDialogBtn.addEventListener("click", () => favDialog.showModal());

Синтаксис

::backdrop {
  /* ... */
}

Описание

Подложки отображаются в следующих случаях:

  • Элементы, переведённые в полноэкранный режим с помощью метода Fullscreen API Element.requestFullscreen().
  • Элементы <dialog>, показанные в верхнем слое вызовом HTMLDialogElement.showModal().
  • Элементы всплывающих окон, показанные в верхнем слое вызовом HTMLElement.showPopover().

Если в верхний слой помещено несколько элементов, у каждого из них есть собственный псевдоэлемент ::backdrop.

/* Backdrop is only displayed when dialog is opened with dialog.showModal() */
dialog::backdrop {
  background: rgb(255 0 0 / 25%);
}

Элементы помещаются в верхний слой по принципу «последним вошёл — первым вышел» (LIFO). Псевдоэлемент ::backdrop позволяет закрыть, стилизовать или полностью скрыть всё, что находится под элементом верхнего слоя.

::backdrop не наследуется другими элементами и сам не наследует их свойства. Для этого псевдоэлемента нет ограничений на применимые свойства.

Примеры

Стилизация подложки модального диалогового окна

В этом примере мы используем псевдоэлемент ::backdrop для стилизации подложки, отображаемой при открытом модальном элементе <dialog>.

HTML

Мы добавляем <button>, при нажатии на которую откроется включённый в пример элемент <dialog>. Когда элемент <dialog> открыт, мы переводим фокус на кнопку закрытия диалогового окна:

<dialog>
  <button autofocus>Close</button>
  <p>This modal dialog has a beautiful backdrop!</p>
</dialog>
<button>Show the dialog</button>

CSS

Мы задаём подложке фон, создавая красочный узор в виде бублика с помощью градиентов CSS:

::backdrop {
  background-image:
    radial-gradient(
      circle,
      white 0 5vw,
      transparent 5vw 20vw,
      white 20vw 22.5vw,
      #eeeeee 22.5vw
    ),
    conic-gradient(
      #272b66 0 50grad,
      #2d559f 50grad 100grad,
      #9ac147 100grad 150grad,
      #639b47 150grad 200grad,
      #e1e23b 200grad 250grad,
      #f7941e 250grad 300grad,
      #662a6c 300grad 350grad,
      #9a1d34 350grad 400grad,
      #43a1cd 100grad 150grad,
      #ba3e2e
    );
}

JavaScript

Диалоговое окно открывается в модальном режиме с помощью метода .showModal() и закрывается методом .close().

const dialog = document.querySelector("dialog");
const showButton = document.querySelector("dialog + button");
const closeButton = document.querySelector("dialog button");

// "Show the dialog" button opens the dialog modally
showButton.addEventListener("click", () => {
  dialog.showModal();
});

// "Close" button closes the dialog
closeButton.addEventListener("click", () => {
  dialog.close();
});

Результат

Спецификации

Спецификация
CSS Positioned Layout Module Level 4
# backdrop

Совместимость с браузерами

Компьютеры Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS
backdrop
37
32
79
12–79
47
24
19
15.4
37
32
47
24
19
15.4
3.0
2.0
37
4.4.3
15.4
dialog
32
79
98
19
15.4
32
98
19
15.4
2.0
4.4.3
15.4
fullscreen
69
12
47
56
16.4
69
47
48
16.4
10.0
69
16.4
inherit_from_originating_element
122
122
120
108
17.4
122
120
81
17.4
26.0
122
17.4
popover
114
114
125
100
17
114
125
76
17
23.0
114
17

См. также

  • :fullscreen
  • :xr-overlay
  • модуль позиционированной раскладки CSS
  • модуль псевдоэлементов CSS
  • <dialog>
  • глобальный атрибут HTML popover
  • Fullscreen API
  • Popover API

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/::backdrop

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API