Bootstrap - Toasts: Ein freundlicher Leitfaden für Anfänger
Hallo da draußen, zukünftige Web-Entwickler! Heute tauchen wir ein in die wunderbare Welt der Bootstrap Toasts. Keine Sorge, wenn du vorher noch nie von ihnen gehört hast – bis zum Ende dieses Tutorials wirst du wie ein Profi toasten! ?
Was sind Bootstrap Toasts?
Bevor wir loslegen, lassen Sie uns darüber sprechen, was Toasts sind. Stell dir vor, du benutzt eine mobile App und plötzlich erscheint eine kleine Benachrichtigung an der unteren Ecke deines Bildschirms. Genau das ist ein Toast in der Web-Entwicklung! Es ist eine leichte Benachrichtigung, die den Push-Benachrichtigungen auf mobilen Geräten nachahmt.
Grundlegender Toast
Lassen Sie mit einem grundlegenden Toast beginnen. Hier ist, wie er im Code aussieht:
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>vor 11 Minuten</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Hallo, Welt! Dies ist eine Toast-Nachricht.
</div>
</div>
Lassen Sie uns das auseinandernehmen:
- Der äußere
div
mit der Klassetoast
ist unser Hauptcontainer. - Innen haben wir einen
toast-header
und einentoast-body
. - Der Header enthält typischerweise ein Bild, einen Titel, eine Zeitangabe und einen Schließen-Button.
- Der Body ist der Ort für unsere Hauptnachricht.
Live Toast
Jetzt lassen wir unseren Toast lebendig werden! Dazu benötigen wir ein bisschen JavaScript:
<button type="button" class="btn btn-primary" id="liveToastBtn">Live Toast anzeigen</button>
<div class="toast-container position-fixed bottom-0 end-0 p-3">
<div id="liveToast" class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>vor 11 Minuten</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Hallo, Welt! Dies ist eine live Toast-Nachricht.
</div>
</div>
</div>
<script>
const toastTrigger = document.getElementById('liveToastBtn')
const toastLiveExample = document.getElementById('liveToast')
if (toastTrigger) {
toastTrigger.addEventListener('click', () => {
const toast = new bootstrap.Toast(toastLiveExample)
toast.show()
})
}
</script>
Hier haben wir einen Button hinzugefügt, der, wenn er angeklickt wird, unseren Toast anzeigt. Das JavaScript am Ende horcht auf den Klick und zeigt den Toast an.
Transluzenter Toast
Möchtest du deinen Toast ein bisschen durchsichtig machen? Füge einfach die Klasse bg-light
hinzu:
<div class="toast bg-light" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>vor 11 Minuten</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Hallo, Welt! Dies ist ein transluzenter Toast.
</div>
</div>
Stapelbare Toasts
Was ist, wenn du mehrere Toasts anzeigen möchtest? Kein Problem! Bootstrap stapelt sie ordentlich:
<div class="toast-container position-fixed bottom-0 end-0 p-3">
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>gerade eben</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Siehst du? Genau so.
</div>
</div>
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<img src="..." class="rounded me-2" alt="...">
<strong class="me-auto">Bootstrap</strong>
<small>vor 2 Sekunden</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Achtung, Toasts stapeln sich automatisch
</div>
</div>
</div>
Individuelle Inhalte
Toasts sind nicht auf nur Text beschränkt. Du kannst jede HTML-Inhalt hinzufügen, die du möchtest:
<div class="toast" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-body">
Hallo, Welt! Dies ist eine Toast-Nachricht.
<div class="mt-2 pt-2 border-top">
<button type="button" class="btn btn-primary btn-sm">Aktion ausführen</button>
<button type="button" class="btn btn-secondary btn-sm" data-bs-dismiss="toast">Schließen</button>
</div>
</div>
</div>
Hier haben wir Buttons zu unserem Toast-Body hinzugefügt. Sei kreativ!
Farbschemata
Toasts können in verschiedenen Farben erscheinen, um das Farbschema deiner Website zu ergänzen oder verschiedene Arten von Nachrichten anzuzeigen:
<div class="toast bg-primary text-white" role="alert" aria-live="assertive" aria-atomic="true">
<div class="toast-header">
<strong class="me-auto">Bootstrap</strong>
<small>vor 11 Minuten</small>
<button type="button" class="btn-close" data-bs-dismiss="toast" aria-label="Schließen"></button>
</div>
<div class="toast-body">
Hallo, Welt! Dies ist ein primärer Toast.
</div>
</div>
Du kannst bg-primary
durch bg-success
, bg-danger
, bg-warning
, etc. ersetzen.
Platzierung von Toasts
Toasts können überall auf deiner Seite platziert werden. Hier ist, wie man sie in die obere rechte Ecke platzieren kann:
<div aria-live="polite" aria-atomic="true" class="position-relative">
<div class="toast-container position-absolute top-0 end-0 p-3">
<!-- Dein Toast hier -->
</div>
</div>
Barrierefreiheit
Barrierefreiheit ist entscheidend! Achte immer darauf, die Attribute role="alert"
und aria-live="assertive"
hinzuzufügen, damit Screen-Reader deine Toasts korrekt ankündigen können.
Hier ist eine Tabelle, die die wichtigsten Toast-Methoden zusammenfasst:
Methode | Beschreibung |
---|---|
show() | Zeigt den Toast |
hide() | Versteckt den Toast |
dispose() | Versteckt den Toast und entfernt ihn aus dem DOM |
Und das war's! Ahora bist du ein Toast-Meister. Denke daran, Übung macht den Meister, also versuche, diese in dein nächstes Projekt zu integrieren. Viel Spaß beim Coden! ?
Credits: Image by storyset