Как задать блоку высоту в зависимости от другого?

Для задания высоты блока в зависимости от другого блока в CSS можно воспользоваться различными подходами, включая использование относительных единиц измерения и использование JavaScript. Вот несколько способов достичь данного эффекта:

1. Использование процентных значений:
Можно задать высоту одного блока в процентах от высоты другого блока. Например, если у вас есть блок #block1, высоту которого нужно задать в зависимости от высоты другого блока #block2, можно использовать следующий CSS-код:

   #block1 {
     height: 50%;
   }
   #block2 {
     height: 300px;
   }

В этом примере блок #block1 будет иметь высоту, равную 50% от высоты блока #block2, который имеет высоту 300 пикселей.

2. Использование flexbox:
Flexbox предлагает более удобные способы управления размерами элементов. Вы можете использовать flexbox, чтобы задать высоту блока на основе высоты другого блока. Например:

   .container {
     display: flex;
   }
   .block1 {
     height: 100%;
   }
   .block2 {
     height: 300px;
   }

В данном случае блок .block1 будет растянут до высоты блока .container. Задавая высоту .container, вы будете автоматически изменять высоту .block1 соответственно.

3. Использование JavaScript:
Если вам нужно выполнить более сложные действия или использовать значения, которые нельзя достичь только с помощью CSS, вы можете использовать JavaScript. Ниже приведен пример с использованием JavaScript для изменения высоты блока в зависимости от другого блока:

   <div id="block1"></div>
   <div id="block2"></div>

   <script>
     var block1 = document.getElementById('block1');
     var block2 = document.getElementById('block2');

     block1.style.height = block2.offsetHeight + 'px';
   </script>

В этом примере мы используем JavaScript для изменения высоты блока #block1 на основе высоты блока #block2.

У каждого из этих подходов есть свои особенности и подходы, которые следует применять в зависимости от требований вашего проекта.