Как растянуть левый блок по высоте относительно правого?
Высота основного блока зависит от содержимого дочерних блоков, статической высоты дочерних блоков не существует.
Мне нужно иметь одинаковую высоту правого и левого блоков без кода js / jquery, если это возможно. А также без использования table, flexbox, grid layouts.
Я попытался установить position: absolute для левого блока. Но высота желтого блока не растягивается, поскольку зависит от содержимого контента.
<div class="card-wrapper"> <div class="card big"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> <div class="right-col"> <div class="card"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> <div class="gap"></div> <div class="card__little"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> </div> </div> |
<div class="card-wrapper"> <div class="card big"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> <div class="right-col"> <div class="card"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> <div class="gap"></div> <div class="card__little"> <div class="card__header"></div> <div class="card__main"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> <div class="card__footer"> Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. Vestibulum lectus mauris ultrices eros in cursus turpis massa. Adipiscing elit ut aliquam purus sit amet luctus venenatis. </div> </div> </div> </div>
.card-wrapper { display: inline-block; border: 1px solid #ababab; border-radius: 10px; padding: 10px; box-sizing: border-box; font-family: Arial, serif; height: 100%; width: 100%; } .big { width: 66%; float: left; } .card { border: 1px solid black; } .card__header { width: 100%; background: green; height: 100px; } .card__main { background: yellow; } .card__footer { background: blue; } .gap { padding-top: 10px; } .right-col { width: 33%; float: right; } |
.card-wrapper { display: inline-block; border: 1px solid #ababab; border-radius: 10px; padding: 10px; box-sizing: border-box; font-family: Arial, serif; height: 100%; width: 100%; } .big { width: 66%; float: left; } .card { border: 1px solid black; } .card__header { width: 100%; background: green; height: 100px; } .card__main { background: yellow; } .card__footer { background: blue; } .gap { padding-top: 10px; } .right-col { width: 33%; float: right; }
Дополнительно:
Так не выйдет.
Либо флексы и гриды либо js либо таблицы.
Читаем задачу
Как растянуть левый блок по высоте относительно правого?
Смотрим в то, как выглядит исходник
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для растяжения левого блока по высоте относительно правого блока, можно использовать flexbox. Flexbox - это мощный инструмент в CSS, который позволяет легко управлять распределением элементов внутри контейнера.
В данном случае, мы можем использовать свойство display: flex; для родительского контейнера и свойство flex: 1; для левого блока. Это позволит левому блоку растянуться по высоте относительно правого блока, если правый блок имеет большую высоту.
Пример кода на HTML и CSS:
<div class="container"> <div class="left-block">Left Block</div> <div class="right-block">Right Block</div> </div>
.container { display: flex; } .left-block { flex: 1; } .right-block { /* стили для правого блока */ }
В данном примере, левый блок будет растягиваться по высоте относительно правого блока, так как мы указали ему flex: 1;.
Таким образом, используя flexbox, можно легко решить проблему растяжения левого блока по высоте относительно правого блока.