Я пытаюсь реализовать двухколоночную разметку, используя только CSS или flexbox, вот мои требования:
- Родительский блок с двумя колонками и одной строкой
- Высота обеих колонок определяется содержимым первой колонки
- Если содержимое второй колонки превышает высоту первой, то оно должно прокручиваться, но высота второй колонки остается фиксированной
- Я не могу использовать фиксированные значения для высоты, поскольку контент в обоих блоках динамический.
Вот что я создал на текущий момент:
.parent {
display: grid;
grid-template-columns: auto 1fr;
align-items: start;
}
.child1 {
background: #ddd;
padding: 1rem;
}
.child2 {
background: #eee;
padding: 1rem;
max-height: 100%;
overflow: hidden;
display: flex;
flex-direction: column;
}
.timeslots {
overflow-y: auto;
flex: 1 1 auto;
}
<div class="parent">
<div class="child1">
Длинное содержимое (определяет высоту)<br>
Длинное содержимое (определяет высоту)<br>
Длинное содержимое (определяет высоту)<br>
</div>
<div class="child2">
<div class="timeslots">
Много контента для прокрутки...<br>
Много контента для прокрутки...<br>
Много контента для прокрутки...<br>
Много контента для прокрутки...<br>
Много контента для прокрутки...<br>
</div>
</div>
</div>
Проблема в том, что вторая колонка продолжает растягиваться по вертикали, и я не могу заставить прокрутку работать как нужно.