【问题标题】:How do I make a section both scrollable and exactly as tall as the rest of the page?如何使一个部分既可滚动又与页面的其余部分完全一样高?
【发布时间】:2020-10-30 12:54:33
【问题描述】:

我有一个结构如下的页面:

+-----------------------------------------+
|                 Header                  |
+----------+------------------------------+
| Sidebar  | Content                      |
|          |                              |
|          |                              |
|          |                              |
+----------+------------------------------+

我希望整个页面与视口一样高,即height: 100vh;

问题是我希望内容部分根据需要填充页面,但同时可滚动(以防它的孩子太高了)。

一个简单的解决方案是将内容的高度设置为calc(100vh - height_of_header),但遗憾的是,由于标题的高度并不总是恒定的,因此没有讨论。

我尝试在内容部分设置height: -webkit-fill-available,但这不起作用(奇怪的是,它与height: 100% 的效果相同)

我正在考虑使用 JS 来解决这个问题,但我希望看到一个纯 CSS 的解决方案。

我更喜欢不需要display: grid 的解决方案,但这也很好!谢谢! :)

Here is a codepen I made, in case it can be helpful.

【问题讨论】:

    标签: html css flexbox css-grid


    【解决方案1】:

    您应该将overflow-y: hidden(尽管autoscroll 也可以)添加到父元素(在这种情况下为<main>)。

    【讨论】:

    • 哇,我很惊讶这能奏效,因为<main> 是父级...实际上即使我将其overflow-y 设置为auto 甚至hidden.. .这只是默认值(visible)不起作用。我仍然对为什么我们需要在父母和孩子上设置溢出感到困惑......但是非常感谢!
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    相关资源
    最近更新 更多