Почему изображение внутри flexbox не сжимается?
Я пытаюсь настроить то, что я думаю, довольно простой flex-box
у меня есть содержащий div. Скажем, для легкой математики у него есть max-width: 1000px;
. Я установил его на display: flex;
внутри него у меня есть два дива. div1 и div2. Я хочу, чтобы div2 всегда занимал правый 300px, а div1 расширялся / сжимался слева по мере изменения размера окна браузеров.
Div1 фактически содержит динамически генерируемое изображение текста, основанное на том, что пользователь вводит в (устаревшая CMS система, не спрашивайте). Другими словами, в нем может быть очень широкое изображение, и я не знаю заранее, насколько оно будет на самом деле широким. У меня возникают проблемы, когда пользователь помещает много текста, а изображение слишком широкое. Т. е. если изображение в div1 заканчивается шириной 1500px, это заставляет div1 быть шириной 1500px, что выталкивает div2 из содержащего div.
#container {
max-width: 1000px;
display: flex;
}
#div1 {
flex: 1 1 auto;
}
#div1 img {
max-width: 100%; /*this doesn't work*/
}
#div2 {
width: 300px;
flex: 1 0 auto;
}
как заставить div1 всегда уважать максимальный размер, независимо от того, насколько большое изображение вставляется в это?
1 ответов
чтобы обеспечить более разумный минимальный размер по умолчанию для элементов flex, это спецификация вводит новый
auto
значение как начальное значениеmin-width
иmin-height
свойства. - W3C по
Chrome еще не реализовал это, но Firefox уже имеет его. Что вы можете сделать:
#div1 {
flex: 1 1 100%;
min-width: 0; /* for Firefox and future Chrome etc. */
}
#div2 {
width: 300px;
flex: 0 0 auto; /* do not grow or shrink the size */
}