Причина, по которой ваши блоки ведут себя так, происходит из-за CSS-рендеринга.
В первом случае, когда вы играете, браузеры не знают, когда блок становится слишком маленьким для его содержимого. Таким образом, он продолжает растягиваться до тех пор, пока он не достигнет максимума, а затем отобразит текст.
В последнем случае вы сообщаете браузеру, где нужно сломать, чтобы он знал, что элемент не должен расширяться.
Единственный способ, которым вы можете легко решить это, - это установить перерывы самостоятельно.