HTML - Element: <dialog>

Der <dialog>-Tag stellt ein Dialogfeld oder eine andere interaktive Komponente dar.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
 <title>Dialog-Element</title>
</head>
<body>

<h1>Dialog-Element</h1>

<p>
  Mit dieser Schaltfläche wird ein systemisches Dialogelement geöffnet.:
  <button id="show">Öffne Dialogelement</button>
</p>

<dialog>
  <p>Hier ist der Dialog mit Standardstilen!</p>
  <p>Sie können die Stile ändern, wenn Sie möchten.</p>
  <button id="close">Schließen</button>
</dialog>

<script>
let dialog = document.querySelector('dialog');
  document.querySelector("#show").addEventListener("click", () => {
  dialog.show();
});

document.querySelector('#close').addEventListener("click", () => {
  dialog.close();
});</script>

</body>
</html>

Beispiel anzeigen

Der Browser rendert den Dialog erst dann, wenn die JavaScript-Methode show() oder showModal() verwendet wird, um den Dialog anzuzeigen. Bei showModal() kann der Benutzer nicht mit dem Rest der Seite interagieren, weil der Dialog eine Hintergrundabdeckung für den Seiteninhalt beinhaltet. Diese Hintergrundabdeckung können Sie mit CSS: ::backdrop selbst gestalten (siehe folgendes Beispiel).

Beim Öffnen eines Modal-Dialogs setzt der Browser automatisch den Fokus auf das erste interaktive Element im Dialog. Besser ist es aber im interaktiven Element (<input>, <select>, etc.) das Attribut: autofocus zu setzen.

Bei der Gestaltung des Dialog-Elements sollte darauf geachtet werden, dass dieses bereits CSS-Angaben (vom Browser bereitgestellten Stilen) wie: margin, padding und border enthält.

Das Element mit CSS anpassen

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
 <title>Dialog-Element</title>

<style>
dialog {
 font-family: Verdana, Arial, Sans-Serif;
 color: #FFD700;
 border: Solid 1px #999999;
 border-radius: 10px;
 box-shadow: 0px 0px 6px 5px #D6D6D6;
 background-image: linear-gradient(
    130deg,#ff7a18,
    #af002d 41.07%,
    #319197 76.05%
  );
 background-size: 450% 450%;
 animation: gradient 10s ease infinite;
}

@keyframes gradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

::backdrop {
  background-image: linear-gradient(
    45deg,
    magenta,
    rebeccapurple,
    dodgerblue,
    green
  );
  opacity: 0.75;
}
</style>

</head>
<body>

<h1>Dialog-Element</h1>

<p>
  Mit dieser Schaltfläche wird ein systemisches Dialogelement geöffnet.:
  <button id="show">Öffne Dialogelement</button>
</p>

<dialog>
  <p>Hier ist der Dialog!</p>
  <p>Die Stile wurden mit CSS angepasst.</p>
  <button id="close">Schließen</button>
</dialog>

<script>
let dialog = document.querySelector('dialog');
  document.querySelector("#show").addEventListener("click", () => {
  dialog.showModal();
});

document.querySelector('#close').addEventListener("click", () => {
  dialog.close();
});
</script>

</body>
</html>

Beispiel anzeigen

Attribute

Mit dem Attribut: open kann das Dialog-Element geöffnet werden.

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<ul> Aufzählungsliste

CSS - Wasserzeicheneffekt - Hintergrundbild fixieren

PHP - Mit filter_input Zahlenwerte überprüfen

JavaScript - Text mit einem Link markieren

MySQL - Suchen unter Berücksichtigung von Groß- und Kleinschreibung