Когда вы задаете display: flex
для wrap
, по умолчанию элементы a
и b
сгибаются в строке.
Теперь еще одно значение по умолчанию flexbox child - это свойство min-width
, по умолчанию равное auto , поэтому элементы a
и b
принимают min-width
, соответствующее его содержимому.Поэтому установите min-width: 0
и все вернется к нормальный - см. Демонстрацию ниже:
.wrap {
overflow-wrap: break-word;
display: flex;
}
.b {
min-width: 0; /* ADDED */
}
<div class="wrap">
<div class="a">
first div
</div>
<div class="b">
animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal animal
animal animal animal animal animal animal animal animal animal animal animal animal
</div>
</div>