Я думаю, что вы смотрите на это неправильно.
Само изображение имеет высоту 90px, что означает, что содержимое элемента flex имеет высоту 90px (поскольку ваше изображение является элементом flex). Таким образом, ваш div с правой стороны соответствует высоте изображения, потому что он выше высоты div, а не наоборот.
Думайте об этом, как будто вы установили высоту гибкого элемента (изображения) на 90 пикселей. Так что он не будет сжиматься, пока вы не установите его на меньшую высоту. Даже если вы явно не устанавливали высоту изображения в 90 пикселей, но она, естественно, составляет 90 пикселей, поэтому она неявно установлена, что вызывает путаницу. Таким образом, в то время как он растянется выше 90 пикселей в высоту, он не пойдет под него, потому что это высота содержимого гибкого элемента.
В случае, если вы поменяли его на div, и он работает так, как вы себе представляли, это потому, что для элемента .item
, который является гибким элементом, не задана высота.