css如何隐藏div滚动条却又能实现滚动功能?

很多时候我们为了美观不想出现滚动条,但是又要保留随着鼠标滚动而滚动的功能。
下面我来谈谈该如何做

原理如下: 可以用padding等,把滚动条挤出到外面去,达到隐藏的效果。
具体操作:
在当前div的外面在嵌套一个div,外面div设置隐藏滚动条,里面的div宽度小于外面n像素,右内边距设置成n像素,然后在设置显示竖直滚动条
先给大家看一个简单的有滚动条的html界面:

代码如下:

<html>
<head>
<meta charset="utf-8">
</head>
<body>
    <div style="border:1px blue solid;width:500px;height:500px;">
    <div style="border:1px red  solid;width:485px;height:100%;overflow-y:scroll;">
<script>
    for(var i=0;i<200;i++) {
        document.write("<p align='center'>hello</p>")
    }
</script>
</div>
</div>
</body>
</html>

代码很简单,我用一个for循环在div中生成了200条段落,
然后div又设置了固定的高宽,这样所有的段落超过了这个高宽,自然就会让div出现滚动条了



运行结果如下图所示:


image.png

设置外面div设置隐藏滚动条,里面的div宽度小于外面n像素,右内边距设置成n像素,然后在设置显示竖直滚动条

代码如下:

<html>
<head>
<meta charset="utf-8">
</head>
 <body>
    <div style="border:1px blue solid;width:500px;height:500px;overflow:hidden;">
    <div  style="border:1px red  solid;width:485px;height:100%;overflow-y:scroll;overflow-x:hidden;padding-
     right:50px;">
<script>
    for(var i=0;i<200;i++)
      {
          document.write("<p align='center'>hello</p>")
       }
</script>
</div>
</div>
</body>
</html>

运行效果



然后我再去掉里面的红色边框,然后这样看起来是不只有一个div,并且出现了滚动条了?


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,665评论 0 30
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,778评论 1 45
  • 一 外部式css样式 (也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css...
    KunMitnic阅读 974评论 0 1
  • CSS格式化排版 1、字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例...
    张文靖同学阅读 1,310评论 0 3