Każdy element ma domyślne zachowanie display, które kontroluje, jak przepływa w układzie.
<div>, <p>, <h1>, <section>, <ul>.<span>, <a>, <strong>, <em>.<p>This is a <strong>bold</strong> word inside a paragraph.</p>
<!-- <strong> stays inline; the two <div>s below stack vertically -->
<div>Block one</div>
<div>Block two</div>
span { width: 200px; height: 50px; } /* ❌ ignored — span is inline */
Ustawienie width/height na elemencie inline nic nie robi. Rozwiązaniem jest zmiana jego display:
span { display: inline-block; width: 200px; } /* ✅ flows inline BUT respects size */
inline-block znajduje się w przepływie tekstu (obok siebie) i respektuje width/height/marginesy — idealne dla elementów nawigacji, odznak lub przycisków ułożonych w rzędzie.
block → new line, full width, sizeable
inline → in-line, content width, NOT sizeable (vertically)
inline-block → in-line, content flow, sizeable
Zrozumienie domyślnego display wyjaśnia, dlaczego <span> nie przyjmuje wysokości, dlaczego <div>y się układają i kiedy przełączać się na inline-block, flex lub grid.
To jest podstawa tego, jak elementy się układają, zanim zastosujesz jakikolwiek system układu.