Каждый элемент имеет поведение display по умолчанию, которое контролирует его поток в макете.
<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 */
Установка width/height на встроенный элемент ничего не делает. Решение — изменить его display:
span { display: inline-block; width: 200px; } /* ✅ flows inline BUT respects size */
inline-block находится в потоке текста (бок о бок) и соблюдает width/height/margin — идеально подходит для элементов навигации, значков или кнопок, расположенных в строку.
block → new line, full width, sizeable
inline → in-line, content width, NOT sizeable (vertically)
inline-block → in-line, content flow, sizeable
Понимание display по умолчанию объясняет, почему <span> не принимает высоту, почему <div>s складываются в стопку и когда переходить на inline-block, flex или grid.
Это основа того, как элементы располагаются до того, как вы применяете какую-либо систему макета.
Библиотека вопросов для IT-собеседований с подробными ответами — от Junior до Senior.
Поддержать