【发布时间】:2022-11-22 20:39:36
【问题描述】:
我希望在一个永远不会超出浏览器窗口的页面中有一个页眉、页脚和主要内容。
如果主区域内的组件溢出,我希望它有一个滚动条(编辑: 但它仍应填满主要区域)。我尝试了 flexbox、网格、各种路径和错误,但即使可能,我也找不到解决方案。当组件溢出时,它总是会过度拉伸主要区域,从而将页脚推出浏览器边界,或者主要区域溢出到位于页面底部的页脚之外。
我发现了这个问题 How to make inner div with overflow:scroll stay inside outer div?,但 height: 100% 的组合对我没有用。
编辑:This 是我目前的尝试
* {
box-sizing: border-box;
}
body {
margin: 0;
height: 100vh;
display: grid;
grid-template-rows: 3rem 1fr 3rem;
font-family: system-ui, sans-serif;
}
header,
footer {
background-color: lightblue;
padding: 1rem;
text-align: center;
}
main {
padding: 2rem;
text-align: center;
height: 100%;
}
.component {
background-color: lightblue;
padding: 1rem;
overflow-y: scroll;
}
<header>header</header>
<main>
<p>main</p>
<div class="component">
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Nulla similique assumenda unde doloribus velit accusantium dolores accusamus iste! Doloribus atque fuga debitis, laboriosam rerum mollitia eum dolorem facilis, officiis, modi voluptatem optio reiciendis delectus minus pariatur nam nulla vitae quasi quis tenetur alias amet eaque molestias. Doloremque ipsam sit fuga ex delectus adipisci et porro perferendis accusantium sequi. Doloribus consequuntur quas quo temporibus saepe accusamus alias porro facilis error, perspiciatis ut rem? Ullam quibusdam quod est molestias? Obcaecati, similique praesentium quaerat doloribus beatae laboriosam corrupti qui, voluptatem officiis sed repellat commodi voluptates! Eos dicta, neque numquam facilis, quidem in laboriosam accusantium expedita hic eaque ad placeat, vitae praesentium temporibus quod. Perferendis consequuntur commodi debitis repellat ullam velit, at inventore repudiandae sit illo placeat autem, corrupti quibusdam praesentium soluta rerum? Minima libero deserunt praesentium suscipit recusandae, similique inventore sunt debitis ut corrupti dolorem placeat iure nemo eos mollitia earum vero dicta illum, necessitatibus rem a? Ad nemo quod possimus cum perferendis eum dicta placeat minima corporis velit impedit incidunt libero mollitia itaque quae inventore molestias dolorum non, aspernatur eos tempore. Sed perferendis corporis eius quod nulla temporibus architecto quia minus officiis maxime! A laborum quisquam tenetur natus consequatur magnam? Totam, illo?
</div>
</main>
<footer>footer</footer>
【问题讨论】:
-
你能分享你的代码的 stackblitz 版本吗?
-
感谢您的建议。我在问题中包含了链接