CSS Float
Floats move a box to one side and allow inline content to wrap around it. They are useful for text wrapping, while flex and grid are usually better for application layouts.
How it works
- Distinguish normal document flow from the formatting context created by flex, grid, floats, or positioned boxes. The same property can behave differently in each context.
- Try the example at a narrow width and with a longer heading. A layout should accommodate content rather than depend on one exact sentence.
A practical example
The HTML supplies the content; the CSS below styles it. Open both together in the playground, then change the lesson rules at the end of the stylesheet.
<div class="layout"><article class="card"><span class="badge">This Saturday</span><h2>Neighbourhood repair club</h2><p>Bring a small project. Share a useful skill.</p><a href="#booking">View the workshop</a></article><article class="card"><span class="badge">This Saturday</span><h2>Build a bird box</h2><p>Bring a small project. Share a useful skill.</p><a href="#booking">View the workshop</a></article><article class="card"><span class="badge">This Saturday</span><h2>Mend a favourite shirt</h2><p>Bring a small project. Share a useful skill.</p><a href="#booking">View the workshop</a></article></div>
body { margin: 0; padding: 24px; font-family: system-ui, sans-serif; color: #25332d; background: #f4f7f2; }
.card { padding: 20px; background: white; border: 1px solid #d4dfd6; }
h2 { margin-top: 0; }
p { line-height: 1.6; }
a { color: #17634c; }
.badge { display: inline-block; margin-bottom: 12px; font-size: .8rem; }
.layout { display: grid; gap: 16px; }
.photo { width: 100%; height: 160px; background: linear-gradient(135deg, #e4af6b, #668cba); }
button, input, select { font: inherit; padding: 8px; }
label { display: block; margin-block: 12px 4px; }
/* This lesson */
.badge { float: inline-start; width: 5rem; margin: 0 1rem 1rem 0; padding: .5rem; background: #e8eedb; }
Floats move a box to one side and allow inline content to wrap around it. They are useful for text wrapping, while flex and grid are usually better for application layouts.