Spec-Zone.ru › CSS

::backdrop

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

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

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

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

Попробовать

Синтаксис

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

Описание

Бэкдропы появляются в следующих случаях:

  • Элементы, которые были переведены в полноэкранный режим с помощью 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,
      #fff 0 5vw,
      transparent 5vw 20vw,
      #fff 20vw 22.5vw,
      #eee 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 for Android Opera Android Safari on IOS Samsung Internet WebView Android
::backdrop 3732 7912–79 47 2419 15.4 3732 47 2419 15.4 3.02.0 374.4.3
dialog 32 79 98 19 15.4 32 98 19 15.4 2.0 4.4.3
fullscreen 69 12 47 56 16.4 69 47 48 16.4 10.0 69
inherit_from_originating_element 122 122 120 108 17.4 122 120 81 17.4 26.0 122
popover 114 114 125 100 17 114 125 76 17 23.0 114

См. также

  • :fullscreen псевдокласс
  • <dialog> HTML элемент
  • API полноэкранного режима
  • popover HTML глобальный атрибут
  • API всплывающего окна

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

Spec-Zone.ru

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