#html #css #angular #sass #scroll
Вопрос:
В течение нескольких дней я сталкивался с проблемой CSS с прокручиваемым компонентом.
Это страница, которую я должен разработать:
Как вы можете видеть, у меня есть верхняя панель навигации, компонент «Хлебная крошка», центральный компонент содержимого и нижний колонтитул. Центральная часть состоит из 4 различных компонентов: верхний заголовок, который обрабатывает запросы дней/месяцев, левая часть представляет собой список выбираемых компонентов, график ( в центре ) и список предупреждений ( диалогов ) слева.
Правая и левая части должны быть прокручиваемыми. Проблема в следующем: я хочу, чтобы максимальная высота прокручиваемого содержимого составляла высоту страницы ( 100 дюймов ) минус высота компонентов выше и ниже ( панель навигации, компоненты верхнего и нижнего колонтитулов ). Я использую Angular с SCSS.
У меня есть структура HTML, подобная этой:
<div class="body-container">
<ac-navbar></ac-navbar>
<div class="main>
<ac-sensor-container>
<ac-sensor-header></ac-sensor-header>
<ac-sensor-list></ac-sensor-list>
<ac-sensor-chart></ac-sensor-chart>
<ac-sensor-alerts></ac-sensor-alerts>
</ac-sensor-container>
</div>
<footer></footer>
</div>
Внутри у <div class="main">
меня есть <router-outlet>
так, чтобы все внутри маршрутизатора имело верхний контейнер.
CSS на body-container
:
display: flex;
flex-direction: column;
min-height: 100vh;
CSS на main
: flex-grow: 1
CSS на ac-sensor-container
:
display: grid;
grid-template-columns: 15% 70% 15%;
CSS on ac-sensor-list
:
overflow-y: auto;
max-height: calc(100vh - 15.75rem);
Как вы можете видеть, calc используется неправильно, так как он не реагирует, он подходит не для каждого экрана.
Есть ли лучший способ установить ac-sensor-list
возможность прокрутки, чтобы она всегда была на максимальной высоте 100 Вч за вычетом высоты других компонентов? Не сообщая явно точную высоту?