【发布时间】:2020-07-02 20:07:32
【问题描述】:
上下文
我有一个固定高度的导航栏。我希望下面的空间垂直填充屏幕的其余部分。我还需要有一个固定的高度,因为我在页面中有一个容器,它有一个可滚动的列表,但不滚动整个页面overflow: hidden
问题
当我在100% 的所有父元素上设置高度时,我得到一个垂直滚动条。我在 SO 上找到了一些关于“保证金崩溃”的答案,但没有什么可以解决我的问题。
100vh 在没有滚动条的情况下也无法工作。
这是设置高度的 css(#__next 只是 next.js 呈现页面的 div):
html,
body,
#__next {
height: 100%;
width: 100%;
}
导航栏只是一个固定的像素高度,下面的空间有height: 100%
这是显示垂直滚动条的屏幕截图:
我在 chrome 检查器上找不到任何问题。
它应该是这样的(设计文件):
你知道如何解决这个问题吗?我需要从屏幕“SippetPanel”和“SnippetContent”中获取两个容器以获取剩余高度而不添加滚动条。它也应该有一个隐藏溢出的内部滚动条(稍后当列表中有很多项目时,比如来自设计文件)
【问题讨论】:
-
你的问题是100%。 100% 什么?你可以使用
calc()来解决你的问题:height: calc(100% - navbarpx)calc() -
解决了滚动条,但现在我在底部有一个奇怪的白条,甚至没有出现在 devtools 中:imgur.com/a/dWaGjWC
-
如果它没有出现在开发工具中,它可能是
body。重新检查你的计算。 -
我现在有这个:
html, body, #__next { height: calc(100% - 80px); width: 100%; }这给了我底部的白条 -
好的。我必须仅在 html 上设置它,然后将其余设置为 100%。但现在我还必须计算边距和填充,但现在很好。适合我。添加它作为答案,我会接受它。谢谢男人
标签: javascript html css