我希望能够滚动整个页面,但不显示滚动条。
在谷歌浏览器中它是:
::-webkit-scrollbar {
display: none;
}
但是 Mozilla Firefox 和 Internet Explorer 似乎并没有那样工作。
我也在 CSS 中尝试过这个:
overflow: hidden;
这确实隐藏了滚动条,但我不能滚动了。
有什么办法可以删除滚动条,同时还能滚动整个页面吗?请使用 CSS 或 HTML。
只是一个工作正常的测试。
#parent{
height: 100%;
width: 100%;
overflow: hidden;
}
#child{
width: 100%;
height: 100%;
overflow-y: scroll;
padding-right: 17px; /* Increase/decrease this value for cross-browser compatibility */
box-sizing: content-box; /* So the width will be 100% + 17px */
}
由于滚动条宽度在不同浏览器中有所不同,因此最好使用 JavaScript 处理它。如果执行Element.offsetWidth - Element.clientWidth
,则会显示确切的滚动条宽度。
使用Position: absolute
,
#parent{
height: 100%;
width: 100%;
overflow: hidden;
position: relative;
}
#child{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: -17px; /* Increase/Decrease this value for cross-browser compatibility */
overflow-y: scroll;
}
根据这个答案,我创建了一个简单的滚动插件 。我希望这会对某人有所帮助。
在 WebKit 中很容易,有可选的样式:
html {
overflow: scroll;
overflow-x: hidden;
}
::-webkit-scrollbar {
width: 0px; /* Remove scrollbar space */
background: transparent; /* Optional: just make scrollbar invisible */
}
/* Optional: show position indicator in red */
::-webkit-scrollbar-thumb {
background: #FF0000;
}
这适用于简单的 CSS 属性:
.container {
-ms-overflow-style: none; // IE 10+
scrollbar-width: none; // Firefox
}
.container::-webkit-scrollbar {
display: none; // Safari and Chrome
}
更新:为 Firefox 添加了新的scrollbar-width
属性。
对于旧版本的 Firefox,请使用: overflow: -moz-scrollbars-none;