如何隐藏滚动条但又能滚动

Posted peakleo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何隐藏滚动条但又能滚动相关的知识,希望对你有一定的参考价值。

先上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #parent{
            overflow: hidden;
        }
        #child{
            width: 100%;
            height: 400px;
            overflow-y: scroll;
            padding-right: 20px; /* 滚动条的宽度 */
            border: 1px solid #ddd;
        }
    </style>
</head>
<body>
<div id="parent">
    <div id="child">
        1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>
        1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>
        1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>1<br>2<br> 3<br> 4<br> 5<br> 6<br> 7<br> 8<br> 9<br>
        end.
    </div>
</div>
</body>
</html>

实践出真知,简单描述下个人见解:实际上#child上是存在y轴的滚动条的, 只不过#child的宽度位#parent的100%,而又加上20px滚动条宽度的padding-right, 所以实际#child的y轴滚动条在最右边,屏幕可视区域的右边20px。而#parent的overflow为hidden,故不可加。可以把#parent的overflow:hidden;去掉,会出现根元素html的x轴滚动条,右滑,便可以看到#child的y轴滚动条了。本人也是尝试了好多写法才得出这个结论,如有理解不正之处请指正。

以上是关于如何隐藏滚动条但又能滚动的主要内容,如果未能解决你的问题,请参考以下文章

隐藏滚动条但不停止滚动[重复]

CSS如何隐藏滚动条?

隐藏浏览器上的垂直滚动条但使其仍然有效

为啥css的overflow不显示滚动条

CSS怎么隐藏滚动条

css隐藏div滚动条