Cada elemento tiene un comportamiento display predeterminado que controla cómo fluye en el diseño.
<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 */
Establecer width/height en un elemento inline no hace nada. La solución es cambiar su display:
span { display: inline-block; width: 200px; } /* ✅ flows inline BUT respects size */
inline-block se sitúa en el flujo de texto (lado a lado) y respeta width/height/márgenes — perfecto para elementos de navegación, insignias o botones dispuestos en una fila.
block → new line, full width, sizeable
inline → in-line, content width, NOT sizeable (vertically)
inline-block → in-line, content flow, sizeable
Comprender el display predeterminado explica por qué tu <span> no toma altura, por qué los <div>s se apilan, y cuándo cambiar a inline-block, flex o grid.
Es la base de cómo se organizan los elementos antes de aplicar cualquier sistema de diseño.