Stijlen voor modals en dialogen
Geef native HTML-dialogelementen en aangepaste modals stijl met backdrop, positionering en animaties.
Stijlen voor modals en dialogen is een gratis CSS Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CSS Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CSS Academy bevat in totaal 4 lessen.
Het ingebouwde dialoogelement
Het HTML-element <dialog> biedt ingebouwd modaal gedrag: focus vasthouden, sluiten met Escape en de API showModal() / close(). Maak het op met CSS in plaats van helemaal vanaf nul een aangepaste modale basisstructuur te bouwen.
De achtergrondlaag opmaken
Het pseudo-element ::backdrop bepaalt de stijl van de laag achter een geopend <dialog>. Pas een halftransparante achtergrond toe: dialog::backdrop { background: rgba(0,0,0,0.5); backdrop-filter: blur(4px); }. Je hebt geen omhullende div nodig.
Dialoogindeling
Centreer dialogen met CSS: dialog { margin: auto; max-width: min(90vw, 640px); max-height: 90vh; overflow-y: auto; }. Een dialoog positioneren met margin: auto centreert deze in het weergavegebied zonder positionering met JavaScript.
Scrollen en overloop
Stel overflow-y: auto in op de dialoog zelf om lange inhoud af te handelen. Stel overflow: hidden in op body wanneer het modale venster wordt geopend om scrollen op de achtergrond te voorkomen — voeg met JavaScript een klasse toe en verwijder die weer om dit in en uit te schakelen.
Animatie met CSS
Animeer het openen van een dialoog met @starting-style (Chrome 117+) voor animaties die alleen CSS gebruiken, zonder JavaScript. Voeg voor bredere ondersteuning met JavaScript een open-klasse toe en gebruik transition op transform en opacity: slide-up van translateY(20px) naar translateY(0).
Uitdaging: sluitanimatie
Het animeren van het sluiten van een dialoog is lastig — de dialoog wordt onmiddellijk verborgen bij close(). Oplossingen: gebruik de popover-API, die sluitanimaties van nature ondersteunt, of onderschep het sluiten met JavaScript, speel de klasse voor de uitgaande animatie af en roep close() aan nadat de animatie is afgelopen.
Z-index beheren
Dialogen worden boven alle andere pagina-inhoud geopend. Voorkom z-index-strijd door de ingebouwde stapelcontext van het dialog-element te gebruiken: het wordt in de bovenste laag weergegeven, boven alle CSS-z-indexwaarden, zonder dat het dialog-element zelf een z-index-instelling nodig heeft.
Responsieve dialoog
Laat dialogen op mobiel als een paneel van onderaf omhoogschuiven: dialog { margin: auto auto 0; width: 100%; border-radius: 16px 16px 0 0; max-height: 90vh; }. Centreer ze op desktop als een traditioneel modaal venster met het patroon margin: auto.
Focusbeheer
Het ingebouwde dialog-element verplaatst bij het openen automatisch de focus naar het eerste focusbare element binnen de dialoog. Zorg voor een logische tabvolgorde binnen de dialoog. Voeg een sluitknop toe die de focus bij het sluiten van de dialoog terugbrengt naar het triggerelement, zodat de toetsenbordnavigatie logisch blijft verlopen.
Toegankelijkheidsattributen
Voeg aria-labelledby toe met een verwijzing naar de dialogtitel en aria-describedby met een verwijzing naar de dialogbeschrijving. De dialoogrol is voor <dialog> impliciet. Schermlezers kondigen deze labels aan wanneer de focus de dialoog binnenkomt.
Patroon voor bevestigingsdialogen
Bevestigingsdialogen hebben het volgende nodig: een duidelijke vraag als titel, een korte beschrijving van de gevolgen, een knop voor de destructieve actie (rood, rechts uitgelijnd) en een annuleerknop (links uitgelijnd of secundair). Gebruik autofocus op de annuleerknop, zodat de veilige keuze de standaardinteractie met het toetsenbord is.
Kennistoets
Wat is het voordeel van het ingebouwde <dialog>-element ten opzichte van een modaal venster op basis van aangepaste div-elementen?
Samenvatting
Het ingebouwde dialog-element met ::backdrop, centrering met margin: auto, beheer van overflow, CSS-animaties voor het openen en focusbeheer biedt een volledig toegankelijk, door CSS aangestuurd patroon voor modale vensters. Responsieve paneelindelingen op mobiel en correcte ARIA-attributen maken een dialoogcomponent die klaar is voor productie compleet.
Leer CSS met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “Stijlen voor modals en dialogen” gratis?
Ja — de volledige tekst van “Stijlen voor modals en dialogen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CSS Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CSS Academy bevat in totaal 4 lessen.
Wat leer ik in “Stijlen voor modals en dialogen”?
Geef native HTML-dialogelementen en aangepaste modals stijl met backdrop, positionering en animaties. Je oefent met CSS Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met CSS Academy te beginnen?
Ervaring vooraf is niet nodig. CSS Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Stijlen voor modals en dialogen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over CSS Academy?
Ja. Elke les over CSS Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Card-component met CSS-custom properties
- Stijlen voor modals en dialogen
- Patronen voor dropdowns en popovers
- Tabcomponent met :checked-hack versus JS