У меня есть страница с глобальным верхним и нижним колонтитулом (с динамическими высотами) и карта в центре оставшейся области страницы, которая уменьшается или увеличивается в зависимости от содержимого карты.
У самой карты также есть верхний и нижний колонтитулы, которые мне нужны, чтобы они оставались видимыми на странице, в то время как содержимое в центре - это та часть, которая прокручивается. У меня самое сложное время, чтобы понять, как это сделать.
Редактировать: я знаю, что могу добиться этого, задав максимальную высоту содержимого карты, но поскольку все высоты глобального и верхнего и нижнего колонтитулов карты являются динамическими, я понятия не имею, какую максимальную высоту дать в любой момент времени ? Или мне нужно решение javascript для достижения этой цели?
Codepen: https://codepen.io/Yorria/pen/yWaWxg
Скриншот:
Модель:
html,
body {
padding: 0px;
margin: 0px;
background-color: pink;
}
.global-container {
height: 100vh;
display: flex;
flex-direction: column;
}
.card-wrapper {
flex-direction: row;
box-sizing: border-box;
display: flex;
place-content: center;
align-items: center;
flex: 1 1 100%;
max-height: 100%;
overflow-y: auto;
}
.card-wrapper-inner {
flex: 1 1 100%;
box-sizing: border-box;
max-width: 70%;
max-height: 100%;
}
.card {
display: flex;
flex-direction: column;
background-color: white;
padding: 20px;
}
.card-content {
flex: 1;
overflow-y: auto;
background-color: #ddd;
}
/* ignore: forcing overflow */
.overflow-content {
height: 2000px;
}
.global-info {
background-color: green;
margin: 0px;
padding: 16px;
font-size: 20px;
font-weight: bold;
color: white;
}
<div class="global-container">
<div class="global-info">Global Header</div>
<div class="card-wrapper">
<div class="card-wrapper-inner">
<div class="card">
<div>Card Header</div>
<div class="card-content">
<div class="overflow-content">
I want only this content to scroll, and to shrink if it doesn't take up the entire page.
<br/>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut nec dapibus libero. Cras sollicitudin consectetur nunc, ac faucibus tellus feugiat vel. Morbi sollicitudin, ex eu consectetur pulvinar, nibh elit ullamcorper erat, eu viverra
sem dui eu orci. Mauris auctor dapibus lectus ac iaculis. Vivamus varius enim non dui porttitor condimentum. Pellentesque euismod massa id imperdiet tincidunt. Mauris imperdiet leo in enim malesuada lacinia. Sed eget porta ligula, nec mollis
quam. Nullam viverra ex lorem, eget euismod ligula gravida vel. Vestibulum accumsan lacinia consectetur.
</div>
</div>
<div>Card Footer</div>
</div>
</div>
</div>
<div class="global-info">Global Footer</div>
</div>