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

先上代码:

<!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轴滚动条了。本人也是尝试了好多写法才得出这个结论,如有理解不正之处请指正。

posted @ 2016-09-22 09:39  peakleo  阅读(5625)  评论(1编辑  收藏  举报