Flexbox and grid, finally understood
justify-content or align-items? 1fr or 33%? Flexbox and grid are the most powerful parts of CSS, and the parts people doubt most often.
In Lurndo you see what every property does. You put food trucks on their pitches and tents in their spots at the campsite, and the items slide along as you type.
Why Lurndo suits you
You see the axes
The inspector draws the main axis and the cross axis of flexbox, and the numbered lines and areas of grid. That way you see why an item ends up where it does.
Puzzles that build up
Every target spot shows as a dashed outline with a number in the page. You put the items in place with a few lines on the container.
No detours with fixed sizes
Pushing an item into place with a fixed
margindoesn't work. The check also tries your code with an extra item or another order.From puzzle to real page
You end with a menu bar, cards in a row and a whole page layout that fits every screen.
Your first flexbox
Put the food trucks on the square side by side, spread across the whole width: the first on the left, the last on the right.
/* Your CSS goes here. */<!DOCTYPE html><html lang="en"><head> <title>Wheels & Meals</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>Wheels & Meals</h1> <nav> <a href="index.html">Home</a> <a href="trucks.html">Trucks</a> <a href="map.html">Map</a> <a href="tickets.html">Tickets</a> </nav> </header> <main> <p class="slogan">Food truck festival on Fore Street in Tiverton, 14 and 15 June.</p> <section class="square"> <div class="truck chips">Chips</div> <div class="truck taco">Tacos</div> <div class="truck ice-cream">Ices</div> <div class="truck pizza">Pizza</div> </section> <section class="cards"> <article class="card"> <h2>Saturday</h2> <p>From 11 am to 11 pm, with live music from 8 pm.</p> </article> <article class="card"> <h2>Sunday</h2> <p>From 11 am to 8 pm, with a kids’ corner.</p> </article> <article class="card"> <h2>Entry</h2> <p>Free. You pay per bite.</p> </article> </section> </main> <footer> <p>Fore Street, Tiverton EX16 6LT</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;}.square { 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);}.square.tall { height: 200px;}.square.narrow { max-width: 250px;}/* A striped awning and two wheels: only for the look. */.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;}.chips { background-color: #e9c46a; color: #3a2a00;}.taco { background-color: #e76f51;}.pizza { background-color: #2a9d8f;}.waffle { background-color: #9c6644;}.ice-cream { padding-top: 30px; padding-bottom: 26px; background-color: #f4a6c6; color: #4a1030;}.curry { background-color: #f4a261; color: #3a1f00;}.burger { background-color: #6d597a;}.soup { background-color: #588157;}.card { padding: 4px 16px; border-radius: 12px; background: #ffffff; box-shadow: 0 1px 2px rgb(43 33 24 / 0.08);}.card h2 { font-size: 1.15rem;}footer { padding: 12px 16px; background: #264653; color: #ffffff;}How you practise
Module 6 is about flexbox, module 7 about grid, each in nine lessons. If you don't know the basics of CSS yet, start with the first modules.
- 6FlexboxYour sixth client: Wheels & Meals, a food truck festival in Tiverton. You put the trucks on their pitches with flexbox: side by side or one under the other, spread over the square, aligned on the cross axis, over several rows and equally wide. To finish, you build a menu bar and cards in a row.
- 7GridYour seventh client: The Lazy Hammock, a campsite in Bala. You lay the field out in columns and rows with grid: pitches on a fixed plan, columns that fill the field, a cabin across two pitches, areas with a name and a field that chooses for itself how many columns fit. To finish, you build the whole home page.
Stuck? Ask Lurnie
Lurnie is your AI coach in every lesson. Ask your question during or after an exercise and get an explanation at your level, straight away.
- During or after any exerciseLurnie knows which lesson and exercise you're on. Ask why something works, what a mistake means or how else you could do it.
- Fresh examples, never the solutionLurnie explains with an example on different data and helps you on with a question to think about. That way you find the solution yourself, and it sticks.
- Your conversations are keptRead back later what Lurnie explained. Your conversations stay with your account, course by course.
Lurnie comes with premium, with 30 questions a day.See premium
Why won't my link turn red? My rule is right there.
Most likely another rule wins. When two rules pick the same element, the more specific one wins: nav a beats a, even if a comes later in your file. Only when they're equal does the last one win.
So look for a selector that points at your link more precisely than yours. Which one do you find?
29 of 30 questions left todayLurnie can make mistakes.
Frequently asked questions
What's the difference between flexbox and grid?
Flexbox puts items on one line, like a menu bar or cards in a row. Grid divides an area into rows and columns at once, like a photo gallery or a whole page. Module 7 has a lesson on when to pick which.
Do I need to know the rest of CSS first?
You need to know what a CSS rule looks like and what a class is. You learn that in module 2, which is free.
Are the flexbox and grid modules free?
Modules 1 to 3 are free. Flexbox and grid are part of premium, together with the puzzles and daily challenges of those modules.
Does it work on a phone too?
Yes. Every puzzle is checked on a phone and on a big screen, and you can practise on both.
Put the first truck in its place
Your first flexbox is done within a minute. No account, nothing to install.
Start free with the first lesson