css隐藏div滚动条

html-css016

css隐藏div滚动条,第1张

记录一下日常开发...

之前开发隐藏 div 滚动条,都是通过设置外出 div 为 overflow: hidden , 然后设置内层 div 的宽度略大于外层 div ,这种做法限制很多,需要确定内外层 div 的宽度,没办法自适应多种分辨率的屏幕,而且开发调试起来很麻烦。

总结一下,隐藏 div 滚动条的几种方式

有的时候总是会碰到稀奇古怪的需求,像现在就有一个判断条滚动时显示,不滚动时隐藏的。按照一般的滚动条显示隐藏需求,基本上是用css的hover属性,hover的时候显示滚动条,否则隐藏。

像滚动条的控制样式我们基本知道,看下

针对不同的浏览器,有不同的隐藏滚动条的方法,以下针对三大浏览器 chrome、ie(包括 edge)、firefox 分别叙述之:

firefox 是三者之中最麻烦的:

到此还没结束,你还要在一些地方加上 width: 100vw。

假设你的 HTML 长这样:

那你的CSS就还要再加上:

综上所述,如果你想让三大浏览器的滚动条都隐藏,并且可以卷动,那你的CSS就至少要长这样:

至于 width: 100vw要加在何处,就要看你的 HTML 结构长怎样了。

可以让读者更聚焦于内文,而不会看到滚动条很短就懒得看、跳出网页,或一心急,就把滚动条直直往下拉。换言之,就是强迫读者慢慢地把内容看完。

假如读者想往回看,可能就会要滚很久。所以,如果你想为较长的内文隐藏滚动条,建议应有导览列,让读者可以快速跳到某一处。

好了,现在我们知道滚动条隐藏了,后面就有滑动时显示滚动条,滚动条没有滑动时隐藏,获取滚动条一般是写

但是我们这里用EventTarget.addEventListener() ;同时也用到了css的calc计算属性,关于EventTarget.addEventListener(),不了解的童鞋可以仔细看看,如果已经知道的童鞋可以直接略过

方法将指定的监听器注册到 EventTarget 上,当该对象触发指定的事件时,指定的回调函数就会被执行。 事件目标可以是一个文档上的元素 Element , Doument 和 Window 或者任何其他支持事件的对象(比如 XMLHttpRequest )

addEventListener() 的工作原理是将实现 EventListener 的函数或对象添加到调用它的 EventTarget 上的指定事件类型的时间侦听器列表中。

有三种代码输入的方式可以在CSS隐藏滚动条。

详细方法如下:

方法一:

代码如下:

html { overflow-y: scroll}

原理:强制显示ie的垂直滚动条,而忽略水平滚动条;

优点:完全解决了这个问题, 允许你保持完整的XHTML doctype.;

缺点:即使页面不需要垂直滚动条的时候也会出现垂直滚动条;

方法二:(推荐采用)

代码如下:

html { overflow-x: hiddenoverflow-y: auto}

原理:隐藏横向滚动,垂直滚动根据内容自适应;

优点:在视觉上解决了这个问题.在不必要的时候, 未强制垂直滚动条出现;

缺点:只是隐藏了水平滚动条,如果页面真正需要水平滚动条的时候,屏幕以外的内容会因为用户无法水平滚动,而看不到;

方法三:

代码如下:

body { margin-right: -15pxmargin-bottom: -15px}

原理:这会在margin的水平和垂直方向上添加一个负值, IE添加了该精确数值后, 便会去除对滚动条的需求假象;

优点:在视觉上解决了这个问题,垂直滚动根据内容自适应;

缺点:由于"人为创建"了15px的外边距(margin), 所以无法使用该填充过的屏幕区域。