Flexbox- en grid-playground
Bouw flexbox- en CSS-grid-lay-outs visueel. Stel container en items in, benoem grid-gebieden, zie het resultaat live en kopieer nette CSS en HTML.
Voorinstellingen
Klik op een item in het voorbeeld om het te selecteren en de eigenschappen hieronder te bewerken.
Zo gebruik je de flexbox- en grid-playground
- Kies een Lay-out: Flexbox of Grid, of begin met een van de Voorinstellingen (Gecentreerd, Navigatiebalk, Kaarten die doorlopen, Zijbalk, Responsief kaartenraster, Holy grail, 12 kolommen).
- Stel de eigenschappen van de Container in. Voor flexbox:
flex-directionenflex-wrap. Voor grid:grid-template-columns,grid-template-rows,grid-auto-flow,justify-itemsengrid-template-areas. Beide delenjustify-content,align-items,align-content,row-gap (px)encolumn-gap (px). - Beheer de Items met Item toevoegen, Geselecteerd item verwijderen en Geselecteerd item resetten. Klik op een item in het voorbeeld (of ga er met Tab naartoe en druk op Enter) om het te selecteren.
- Bewerk het geselecteerde item:
orderenalign-selfin beide modi,flex-grow,flex-shrinkenflex-basisvoor flexbox, engrid-area,grid-column,grid-rowenjustify-selfvoor grid. - Kopieer de CSS-code en de bijbehorende HTML-code met hun knoppen Kopiëren.
Elk bedieningselement is een gewoon formulierveld, dus de hele playground werkt ook alleen met het toetsenbord. De CSS bevat alleen de eigenschappen die je ten opzichte van de standaardwaarden hebt gewijzigd, zodat ze kort blijft, en items met identieke instellingen delen één regel (.item als ze allemaal gelijk zijn).
Flexbox in het kort
Flexbox zet items langs één as. flex-direction bepaalt de hoofdas (een rij of een kolom); justify-content verdeelt de items erlangs (center, space-between…), en align-items plaatst ze op de dwarsas. Met flex-wrap: wrap gaan items die niet passen naar een nieuwe regel, en align-content verdeelt dan de ruimte tussen die regels.
Elk item heeft drie eigenschappen voor de grootte, meestal samen geschreven als flex:
flex-basis: de begingrootte (autogebruikt de inhoud of dewidth);flex-grow: hoeveel van de vrije ruimte het item inneemt (0 = niets, 1 = een gelijk deel);flex-shrink: hoeveel het inlevert als er te weinig ruimte is (0 = krimpt nooit).
De voorinstelling Zijbalk toont het klassieke patroon: een zijbalk met flex-basis: 200px en flex-shrink: 0, en een hoofdgedeelte met flex-grow: 1.
CSS Grid in het kort
Grid zet items in twee dimensies. grid-template-columns: repeat(3, 1fr) maakt drie gelijke kolommen; fr is een deel van de vrije ruimte. repeat(auto-fill, minmax(120px, 1fr)) maakt zoveel kolommen van minstens 120px als er passen, wat een responsief kaartenraster oplevert zonder één media query.
Items vullen de cellen op volgorde, tenzij je ze plaatst: grid-column: span 2 maakt een item twee kolommen breed, en grid-column: 1 / -1 rekt het uit over de hele rij.
Met grid-template-areas teken je de lay-out met namen. Typ één rij per regel, bijvoorbeeld header header en dan nav main, en geef items grid-area: header of grid-area: main. Een punt staat voor een lege cel. Elke rij moet hetzelfde aantal cellen hebben en elke naam moet een rechthoek vormen; anders waarschuwt de tool je.
Veelgestelde vragen
Gebruik ik flexbox of grid?
Flexbox voor eendimensionale inhoud zoals werkbalken, groepen knoppen of iets centreren. Grid als rijen en kolommen op één lijn moeten liggen, zoals in paginalay-outs en kaartgalerijen. Ze gaan goed samen: een grid van kaarten waarvan de binnenkant flexbox gebruikt.
Waarom verandert align-items niets?
In een rij rekken items standaard uit tot de hoogte van de container, en de container is maar zo hoog als zijn inhoud. Geef hem een hoogte, of kijk naar het voorbeeld, dat een minimumhoogte heeft.
Wat doet gap?
Het bepaalt de ruimte tussen items (niet eromheen). Het werkt in alle actuele browsers, zowel in flexbox als in grid.
Verandert order de leesvolgorde?
Nee. order verplaatst items alleen visueel; schermlezers en toetsenbordnavigatie volgen nog steeds de volgorde in de HTML, dus gebruik het spaarzaam.
Moet ik de gegenereerde HTML-klassen houden?
Nee. De HTML-code is een eenvoudig startpunt met een container en items. Je kunt de klassennamen hernoemen, zolang je ze in de CSS-code op dezelfde manier aanpast.
Vergelijkbare tools
- CSS formatteren en minifyen Maak rommelige CSS netjes met consistente inspringing of minify hem met csso, en zie de grootte voor en na. Werkt in je browser; er wordt niets geüpload.
- Border-radius generator Geef CSS border-radius visueel vorm met versleepbare punten. Stel elke hoek in px of % in, gebruik 8 elliptische waarden, maak blobs en kopieer de code.
- Box-shadow generator Ontwerp gelaagde CSS box-shadows met live voorbeeld. Stel verschuiving, vervaging, spreiding, kleur, dekking en inset in en kopieer de code.