Ответ 1
Решение
Добавьте min-width: 0
к внешнему элементу flex (.content
/demo)
или
Добавьте overflow: hidden
к внешнему элементу flex (.content
/demo)
Описание
Первоначальная настройка контейнера гибкости min-width: auto
на гибких элементах.
Это означает, что элемент гибкости не может быть меньше размера его содержимого.
В исходном коде текстовое поле (элемент гибкости) становится меньше из-за overflow: hidden
.
Без этого правила вы будете иметь то же поведение, что и второй пример.
Демо: Когда overflow: hidden
удаляется, первый пример ведет себя как второй пример.
Во второй версии вашего кода основные элементы гибкости .side
и .content
.
По умолчанию .content
не может быть меньше его содержимого (независимо от flex-shrink
)... пока вы не переопределите min-width: auto
с помощью min-width: 0
или, как в первом примере, примените overflow: hidden
.
Из спецификации:
4.5. Подразумевается минимальный размер Flex Элементы
Чтобы обеспечить более разумный минимальный размер по умолчанию для гибких элементов, это спецификация вводит новое значение
auto
в качестве начального значения свойстваmin-width
иmin-height
, определенные в CSS 2.1... читать больше
В следующем примере см. Почему не гибкий элемент сжимается до размера содержимого?