Мне нужно отобразить несколько полей рядом друг с другом. Каждое поле имеет переменное количество дочерних элементов. Родитель должен расширяться в соответствии с пространством, которое занимают дочерние элементы. Важно, чтобы элементы имели фиксированную ширину. Я использую flexbox для макета. Он должен выглядеть следующим образом:
Я написал Plunkr, чтобы проиллюстрировать.
Проблема: Chrome не расширяет родительский элемент, когда дети занимают больше места. Детские элементы отображаются за пределами границ родителей и отображаются в соседнем родителе, в результате чего этот беспорядок:
По иронии судьбы, если вы открываете Plunkr в IE 11 или Edge, он отлично работает.
Что я делаю неправильно?
Здесь фрагмент кода:
body {
display: flex;
overflow: scroll;
}
.parent {
border: 1px solid grey;
padding: 0 20px;
display: flex;
flex-direction: column;
}
.items {
display: flex;
}
.items span {
flex-basis: 25px;
flex-shrink: 0;
}
<div class="parent">
<h4>Parent 1</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>
<div class="parent">
<h4>Parent 2</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>
<div class="parent">
<h4>Parent 3</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>
<div class="parent">
<h4>Parent 4</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>
<div class="parent">
<h4>Parent 5</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>
<div class="parent">
<h4>Parent 6</h4>
<div class="items">
<span>i1</span>
<span>i2</span>
<span>i3</span>
<span>i4</span>
<span>i5</span>
</div>
</div>