HTML en CSS leren: grid-template-areas en grid-area
Vlakken met een naam
Aan de receptie hangt een plattegrond: de receptie bij de ingang, de vijver achteraan, de speeltuin ertussen. Gust wil die op de website. Met grid teken je hem gewoon in tekst.
Een plattegrond in tekst
Met grid-template-areas teken je de plattegrond in tekst. Elke string tussen aanhalingstekens is een rij, elk woord een cel. Staat dezelfde naam in cellen naast of onder elkaar, dan vormen ze samen één vlak. Een punt . is een cel zonder naam.
Een item zet je in een vlak met grid-area en de naam, zonder aanhalingstekens. Items zonder vlak vullen de cellen die vrij blijven.
Op de pagina staan de namen van de vlakken in het grid.
.terrein { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-areas: "receptie receptie vijver" "speeltuin . vijver"; gap: 8px;}.receptie { grid-area: receptie; }.vijver { grid-area: vijver; }.speeltuin { grid-area: speeltuin; }Probeer het zelf
Schrijf de plattegrond: links de vijver over twee rijen, rechts de receptie met de speeltuin eronder.
.terrein { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;}.receptie { grid-area: receptie; }.vijver { grid-area: vijver; }.speeltuin { grid-area: speeltuin; }<link rel="stylesheet" href="style.css"><main> <section class="terrein"> <div class="plaats receptie">Receptie</div> <div class="plaats vijver">Vijver</div> <div class="plaats speeltuin">Speeltuin</div> <div class="plaats tent">Tent</div> <div class="plaats tent">Tent</div> </section></main>body { margin: 0; font-family: system-ui, sans-serif; background: #f5f2e8; color: #1f2a22;}header { padding: 12px 16px; background: #2d4a3a; 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;}.terrein { margin: 16px 0; padding: 9px; border-radius: 18px; background-color: #bcd6a0; background-image: repeating-linear-gradient(90deg, rgb(255 255 255 / 0.13) 0 20px, transparent 20px 40px); box-shadow: inset 0 0 0 1px rgb(45 74 58 / 0.16);}/* Een tentje, caravan of chalet op elke plaats: alleen voor de sier. */.plaats { position: relative; margin: 3px; padding: 27px 4px 9px; border-radius: 12px; background: #fffdf6; box-shadow: 0 1px 2px rgb(31 42 34 / 0.12), 0 6px 14px -8px rgb(31 42 34 / 0.4); font-size: 0.875rem; font-weight: 700; line-height: 1.25; text-align: center;}.plaats::before { content: ""; position: absolute; top: 9px; left: 50%; width: 16px; height: 12px; margin-left: -8px; background: #e07a3f; clip-path: polygon(50% 0, 100% 100%, 0 100%);}.caravan::before { width: 18px; margin-left: -9px; border-radius: 5px 5px 3px 3px; background: #3d8c95; clip-path: none;}.camper::before { width: 20px; margin-left: -10px; background: #4f7cac; clip-path: polygon(0 15%, 68% 15%, 100% 55%, 100% 100%, 0 100%);}.chalet::before { background: #9c6b3f; clip-path: polygon(50% 0, 100% 45%, 100% 100%, 0 100%, 0 45%);}.hangmat::before { top: 11px; width: 20px; height: 7px; margin-left: -10px; border-bottom: 3px solid #c99a2e; border-radius: 0 0 10px 10px; background: none; clip-path: none;}.receptie::before { width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: #2d4a3a; clip-path: none;}.vijver::before { top: 10px; width: 24px; height: 11px; margin-left: -12px; border-radius: 50%; background: #5fa8d3; clip-path: none;}.speeltuin::before { width: 18px; margin-left: -9px; background: #d1495b; clip-path: polygon(50% 0, 100% 100%, 82% 100%, 50% 32%, 18% 100%, 0 100%);}aside { padding: 12px 16px; background: #e4ecd6;}aside h2 { margin: 4px 0 8px; font-size: 1.05rem;}.kaart { padding: 4px 16px; border-radius: 12px; background: #ffffff; box-shadow: 0 1px 2px rgb(31 42 34 / 0.08);}.kaart h2 { font-size: 1.15rem;}footer { padding: 12px 16px; background: #2d4a3a; color: #ffffff;}Klaar voor meer?
De volledige les heeft 5 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.
Begin aan de les