HTML en CSS leren: Een layout met flexbox
Een menubalk en kaarten op een rij
Nadia stuurt een ontwerp van haar neef, die grafisch vormgever is: het logo en de naam links, het menu rechts, en de kaarten van het programma naast elkaar. "Kun jij dat bouwen?" Met wat je nu weet, wel.
Een marge die alles opslokt
In een flexcontainer neemt een marge met de waarde auto alle vrije ruimte aan zijn kant. Met margin-left: auto op het menu schuift het menu helemaal naar rechts, terwijl het logo en de naam links blijven.
Zo maak je de klassieke menubalk: display: flex en align-items: center op de header, gap voor wat ruimte, en margin-left: auto op de nav.
Met flex-wrap: wrap mag het menu op een gsm naar een tweede regel; ook daar duwt de marge het naar rechts.
header { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px;}nav { margin-left: auto;}Probeer het zelf
Bouw de menubalk van het ontwerp na: het logo en de naam links, in het midden van de hoogte, 12px ruimte, en het menu rechts. Op een gsm mag het menu naar een tweede regel.
/* Jouw CSS komt hier. */<!DOCTYPE html><html lang="nl"><head> <title>Wielen & Smullen</title> <link rel="stylesheet" href="basis.css"> <link rel="stylesheet" href="style.css"></head><body> <header> <img src="truck.svg" alt="" width="40" height="40"> <h1>Wielen & Smullen</h1> <nav> <a href="index.html">Home</a> <a href="trucks.html">Trucks</a> <a href="plan.html">Plan</a> <a href="tickets.html">Tickets</a> </nav> </header> <main> <p class="slogan">Foodtruckfestival op de Grote Markt van Tienen, 14 en 15 juni.</p> <section class="plein"> <div class="truck friet">Friet</div> <div class="truck taco">Taco's</div> <div class="truck ijs">IJs</div> <div class="truck pizza">Pizza</div> </section> <section class="kaarten"> <article class="kaart"> <h2>Zaterdag</h2> <p>Van 11 tot 23 uur, met livemuziek vanaf 20 uur.</p> </article> <article class="kaart"> <h2>Zondag</h2> <p>Van 11 tot 20 uur, met een kinderhoek.</p> </article> <article class="kaart"> <h2>Toegang</h2> <p>Gratis. Je betaalt per hapje.</p> </article> </section> </main> <footer> <p>Grote Markt, 3300 Tienen</p> </footer></body></html>body { margin: 0; font-family: system-ui, sans-serif; background: #fff8ec; color: #2b2118;}header { padding: 12px 16px; background: #264653; color: #ffffff;}header h1 { margin: 0; font-size: 1.5rem;}nav a { padding: 6px 10px; border-radius: 999px; color: #ffffff; text-decoration: none;}main { padding: 0 16px 24px;}.slogan { margin: 16px 0 0;}.plein { margin: 16px 0; padding: 12px; border-radius: 18px; background-color: #efe6d4; background-image: radial-gradient(rgb(110 90 60 / 0.16) 1px, transparent 1.5px); background-size: 14px 14px; box-shadow: inset 0 0 0 1px rgb(110 90 60 / 0.14);}.plein.hoog { height: 200px;}.plein.smal { max-width: 250px;}/* Een luifel met strepen en twee wielen: alleen voor de sier. */.truck { position: relative; margin-bottom: 6px; padding: 16px 14px 12px; border-radius: 10px 10px 8px 8px; background-color: #e76f51; background-image: repeating-linear-gradient(90deg, rgb(255 255 255 / 0.85) 0 7px, transparent 7px 14px); background-size: 100% 7px; background-repeat: no-repeat; box-shadow: 0 1px 1px rgb(43 33 24 / 0.12), 0 6px 12px -6px rgb(43 33 24 / 0.35); color: #ffffff; font-weight: 700;}.truck::before,.truck::after { content: ""; position: absolute; bottom: -5px; width: 10px; height: 10px; border-radius: 50%; background: #d9cfbb; box-shadow: inset 0 0 0 3px #2b2118;}.truck::before { left: 9px;}.truck::after { right: 9px;}.friet { background-color: #e9c46a; color: #3a2a00;}.taco { background-color: #e76f51;}.pizza { background-color: #2a9d8f;}.wafel { background-color: #9c6644;}.ijs { padding-top: 30px; padding-bottom: 26px; background-color: #f4a6c6; color: #4a1030;}.curry { background-color: #f4a261; color: #3a1f00;}.burger { background-color: #6d597a;}.soep { background-color: #588157;}.kaart { padding: 4px 16px; border-radius: 12px; background: #ffffff; box-shadow: 0 1px 2px rgb(43 33 24 / 0.08);}.kaart h2 { font-size: 1.15rem;}footer { padding: 12px 16px; background: #264653; color: #ffffff;}Klaar voor meer?
De volledige les heeft 4 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les