为什么要在 html 和 body 上同时设置 `overflow`?

Why setting `overflow` to both on html and body?

我刚刚注意到很多 css 插件,当设置页面溢出为隐藏时(例如),他们习惯将它同时设置为 html 和正文,像这样:

html, body {
    overflow: hidden;
}

例如,fullpage.js确实喜欢这样。

将其设置为正文和 html 之间的确切区别是什么?
这是跨浏览器的把戏吗?

这是一个 CSS 技巧,可以防止不需要的滚动条,尤其是水平条。它阻止的是显示的任何比 html 或 body 更宽的内容,因此阻止了滚动条。这是一篇深度 csstricks 文章:https://css-tricks.com/findingfixing-unintended-body-overflow/

但是你会在最后注意到,他提到不建议将溢出隐藏在 body(和 html)上。

在 fullpage.js 的情况下,这很好,因为他们专门尝试隐藏滚动条,以便他们的动画可以引入屏幕外的内容。