Это потому, что это блочный элемент, и он на самом деле берет свою ширину от своего родителя. Текст внутри него переполняется за пределами контейнера, но не влияет на фактическую ширину контейнера.
Вы можете доказать это, добавив стиль border
к внутреннему <div>
.
Вы можете заставить элемент брать ширину из ширины текста, изменив тип отображения.
Если вы установите display:inline-block;
, он сообщит правильную ширину.
И если вы добавите border
сейчас, вы заметите, что он тоже изменился.