:modal-CSS-Pseudoklasse
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2022 browserübergreifend verfügbar.
Die :modal-CSS-Pseudoklasse wählt ein Element aus, das sich in einem Zustand befindet, in dem es jede Interaktion mit Elementen außerhalb seiner selbst verhindert, bis die Interaktion beendet wird. Mehrere Elemente können gleichzeitig von der Pseudoklasse :modal ausgewählt werden, aber nur eines davon ist aktiv und kann Eingaben empfangen.
Probieren Sie es aus
button {
display: block;
margin: auto;
width: 10rem;
height: 2rem;
}
:modal {
background-color: beige;
border: 2px solid burlywood;
border-radius: 5px;
}
p {
color: black;
}
<p>Would you like to see a new random number?</p>
<button id="showNumber">Show me</button>
<dialog id="favDialog">
<form method="dialog">
<p>Lucky number is: <strong id="number"></strong></p>
<button>Close dialog</button>
</form>
</dialog>
const showNumber = document.getElementById("showNumber");
const favDialog = document.getElementById("favDialog");
const number = document.getElementById("number");
showNumber.addEventListener("click", () => {
number.innerText = Math.floor(Math.random() * 1000);
favDialog.showModal();
});
Syntax
:modal {
/* ... */
}
Hinweise zur Verwendung
Zu den Elementen, die eine Benutzerinteraktion mit dem Rest der Seite verhindern und von der Pseudoklasse :modal ausgewählt werden, gehören:
- Das Element
dialog, das mit der APIshowModal()geöffnet wurde. - Das Element, das von der Pseudoklasse
:fullscreenausgewählt wird, wenn es mit der APIrequestFullscreen()geöffnet wurde.
Beispiele
>Einen modalen Dialog gestalten
In diesem Beispiel wird ein modaler Dialog gestaltet, der sich öffnet, wenn die Schaltfläche „Show the dialog“ aktiviert wird. Das Beispiel wurde vom Beispiel für das Element <dialog> abgeleitet.
CSS
Die Pseudoklasse :modal wählt den mit showModal() geöffneten Dialog aus und versieht ihn mit einem roten Rahmen, einem gelben Hintergrund und einem Schlagschatten.
:modal {
border: 5px solid red;
background-color: yellow;
box-shadow: 3px 3px 10px rgb(0 0 0 / 50%);
}
Ergebnis
Spezifikationen
| Spezifikation |
|---|
| HTML> # selector-modal> |
| Selectors Level 4> # selectordef-modal> |
Browser-Kompatibilität
Siehe auch
- Element
dialog - Weitere Pseudoklassen für den Anzeigezustand von Elementen:
:fullscreenund:picture-in-picture - Vollständige Liste der Pseudoklassen