CSS Academy · Les

Stijlen voor modals en dialogen

Geef native HTML-dialogelementen en aangepaste modals stijl met backdrop, positionering en animaties.

Les 2 van 413 stappen

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.

Gratis beginnen

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

  1. Card-component met CSS-custom properties
  2. Stijlen voor modals en dialogen
  3. Patronen voor dropdowns en popovers
  4. Tabcomponent met :checked-hack versus JS
← Terug naar CSS Academy