Цель состоит в том, чтобы строка имела ту же высоту, что и самый короткий дочерний элемент.
Это не то, что flexbox может делать автоматически.
Вам нужно будет найти способ сообщить контейнеру, какая высота у самого маленького потомка, чтобы он мог отрегулировать его высоту, чтобы соответствовать. JavaScript, кажется, путь.
В качестве примера возьмем два изображения: одно имеет высоту 200 пикселей, а другое - высоту 120 пикселей. Этот пример ниже работает так, как задумано, когда элементы <img>
являются прямыми дочерними элементами элемента flex.
«Пример, приведенный ниже, работает как задумано ...» Полагаю, вы подразумеваете, что высота строки равна высоте более короткого изображения (120 пикселей).
На самом деле строка имеет высоту 200px:
Более короткое изображение на самом деле растягивается от 120 до 200 пикселей, поскольку по умолчанию для гибкого контейнера установлено значение align-items: stretch
, означающее, что гибкие элементы будут расширять всю длину поперечной оси. (Это то, как flexbox может доставить макет со столбцами одинаковой высоты.)
Если вы переопределите значение по умолчанию, скажем, align-items: flex-start
, вы ясно увидите, что более высокие элементы задают высоту контейнера.