Skip to main content
← 🎨 CSS as a design systemΒ·Module B2 Β· Lesson 1
TaskJust observe normal flow. The HTML has three divs that stack vertically and one paragraph with two spans inline. Don't add any layout CSS. Set body font-family to system-ui, sans-serif so it's readable.

Normal flow: how the browser stacks elements by default

60 XP5 min
Theory

What "no CSS" looks like

Before flexbox, grid, or any positioning β€” every element follows normal flow:

  • Block elements (<div>, <p>, <h1>) stack VERTICALLY, each taking the full width of the parent.
  • Inline elements (<span>, <a>, <strong>) flow HORIZONTALLY inside text, wrapping at line breaks.
<div>Block 1</div>
<div>Block 2</div>
<span>inline a</span> <span>inline b</span>

The result is a vertical stack of two divs, then a line with the two spans next to each other.

Why normal flow matters

Normal flow IS your layout most of the time:

  • Article body β€” paragraphs stack vertically.
  • Form β€” labels and inputs in a column.
  • Sidebar navigation β€” links stacked.

Reaching for flexbox or grid on simple vertical stacks is overkill. <div>s already stack vertically for free.

When you NEED a layout engine

  • Horizontal alignment ("3 cards in a row") β†’ flexbox.
  • 2-axis ("sidebar + main + topbar") β†’ grid.
  • Positioned overlays (modals, tooltips, sticky headers) β†’ position: fixed/absolute/sticky.

This module visits each in order: float (briefly, for history), then flexbox in depth, then grid (next module).

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.