Нет, я бы сказал, что метод calc является лучшим. Вот как я делаю то же самое, по крайней мере. Вы можете защитить себя от случайных изменений дизайна материала, установив себе высоту панели инструментов. Если вы используете SASS, вы можете сохранить высоту панели инструментов в переменной (или на карте с высотой для каждого медиа-запроса, если он изменяется) и использовать ее как для высоты на панели инструментов, так и для расчета сheight: calc(100vh - #{$toolbar-height})
.
Редактировать:
Ради интереса я сделал быструю и грязную модель с сеткой CSS. Это работает хорошо, но я не уверен, сколько из этого будет жизнеспособным для вашего конкретного кода, так что ответ все равно остается. Просто вариант для рассмотрения:
body { margin: 0; padding: 0; }
.main {
display: grid;
grid-template-rows: 64px 1fr;
grid-template-columns: 300px 1fr;
height: 100vh;
}
.toolbar {
background: grey;
width: 100%;
grid-column: span 2;
}
.sidebar {
background: #BAD;
}
.content {
padding: 24px;
overflow: auto;
}
<div class="main">
<div class="toolbar"></div>
<div class="sidebar"></div>
<div class="content">
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Quia dolores odio consequuntur beatae? Doloribus corrupti accusantium dolore, fuga magni eaque odio perferendis autem voluptatem distinctio alias ducimus consequatur debitis dignissimos.</p>
</div>
</div>