如果要将容器设置为屏幕高度,可以将.left
和.right
设置为height: 100vh;
stackblitz example个
编辑
您可以使用弹性框来包含左侧,并使其居中并包含元素.我已经将min-height
减少到100px
,以使演示在预览中工作得更好,但它很容易更改为其他大小.
.ctnr {
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
height: 100vh;
grid-template-areas: "header header"
"nav main"
"footer footer";
}
h3 {
margin-bottom: 0;
}
header {
grid-area: header;
background: turquoise;
}
nav {
grid-area: nav;
background: grey;
display: flex;
flex-direction: column;
gap: 1rem;
min-height: 100px;
}
.scroll-left {
overflow: scroll;
flex: 1;
}
main {
grid-area: main;
background: orange;
overflow: scroll;
min-height: 100px;
}
body {
margin: 0;
}
<div class="ctnr">
<header>
<h3>header</h3>
<div>some content</div>
</header>
<nav>
<div class="scroll-left">
nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>nav<br>
</div>
<div class="scroll-left">
nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>nav2<br>
</div>
</nav>
<main>main main main main
<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br> main main mainmain
<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br>main<br> main main main
</main>
</div>