CSS 溢出未按预期工作,无法滚动到 div 的底部

CSS overflow not working as expected and unable to scroll to bottom of div

我的目标是设置一个带有粘性 header 和左侧边栏以及可以滚动的 non-sticky DashboardBody(green-bordered 框)的布局(在这种情况下,顶部的内容会消失 "under" 粘性 header)。我正在使用 styled-components,header 下的两个框被包裹在使用 flexbox 的 BelowNavContainer 中。

组件 ProjectContainer 包含整个视图(包括 header 和边栏)。因为我只想要 DashboardBody 部分的滚动条,所以我为此设置了 overflow: auto,为 ProjectContainer 设置了 overflow: hidden。然而,这会导致用户无法看到 DashboardBody 的底部 - 滚动条的底部(带有向下的箭头)也不可见。

如果我为 ProjectContainer 设置 overflow: auto,则会添加一个额外的滚动条,我可以使用这两个滚动条滚动到 DashboardBody 的底部。但显然,我只想要一个滚动条。

我做错了什么,我该如何解决?

我查看了相关的 "overflow not working" 问题。他们的解决方案不起作用,因为我已经指定了 height 值。

工作演示:https://codesandbox.io/s/overflow-woes-i4dww

注意:好像是CodeSandbox本身给view加了一个滚动条,所以我觉得最外面的可以忽略。在我自己的机器上使用 webpack-dev-server(来自 create-react-app),我的滚动条比 CodeSandbox 显示的少一个。

我希望 DashboardBody 有一个滚动条,可以让我滚动到 div 的底部。我只希望这个组件有一个滚动条,即滚动条不应该在 header.

旁边的屏幕顶部开始

目前,如果不向其封闭的 div、ProjectContainer.

添加另一个滚动条,我似乎无法到达其滚动条的底部

您的页眉高度为 100px,下面的内容为 100vh(表示整个屏幕)。 如果你想在不使用另一个滚动条的情况下实现底部,你应该将内容高度更改为:calc(100vh - 100px)。是您要找的吗?

问题出在 BelowNavContainer 组件上。

您已将其高度设置为 100vh,但请注意其上方有 header,因此现在整页的总高度为:

header 高度 + 100vh(低于 NavContainer 高度)。

当您将 parent 组件:ProjectContainer 高度设为 100%,overflow: hidden,这将隐藏 DashboardBody 组件的底部。

解决方案:

BelowNavContainer的高度设置如下: height: calc(100vh - 100px)

作为100px:is你的header

的高度

你可以see this wrking demo