CSS 实现滚动条隐藏

在很多时候,滚动条的出现会严重影响我们的 UI,虽然使用 JS 可以轻松解决,但难免杀鸡焉用牛刀。其实使用 CSS 可以解决大多数问题。

实现

早期为了提升移动端浏览器的原生体验,专门为此提供了支持,我们可以通过伪对象选择器-webkit-scrollbar轻松实现,但仅限于采用 webkit 内核,如 Chrome Safari。在 PC 端兼容问题就出现了。

.element::-webkit-scrollbar {
    display:none;
}

为了解决上述问题,我们可以通过巧妙布局和 css 特性实现同样效果,此方法可以刚好将滚动条置于内容区域外并通过 overflow: hidden 隐藏,但诟病也很明显,就是外层容器和内容区域必须固定宽高。

 <div class="outer-container">
     <div class="inner-container">
        <div class="content">
            ......
        </div>
     </div>
 </div>

.outer-container,.content {
    width: 200px; height: 200px;
}
.outer-container {
    position: relative;
    overflow: hidden;
}
.inner-container {
    position: absolute; left: 0;
    overflow-x: hidden;
    overflow-y: scroll;
}

还有一种方式可以帮助我们解决上面问题,我们可以将内容区的宽度设置超出容器宽度,并通过 overflow: hidden 隐藏。

<div class="container">
    <div class="content">
        ......
    </div>
</div>

.container {
    width: 100%;
    overflow: hidden;
}
.content {
    width: calc(100% + 18px);
    overflow-y: scroll;
}

此方法比较简单粗暴,但也有问题,因为各个浏览器滚动条的尺寸不同,因此我们采用了一个最大值 18px,但这也导致在一些浏览器上把过多的内容区域隐藏掉。

参考:

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,636评论 32 459
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,344评论 0 11
  • 时光就这样滴滴流逝……走得最急的都 是最好的时光。人却眼眶打转,却还是努力着微笑着面对着每个人,一个人的我,彼时...
    夏雨寒Cindy阅读 278评论 0 1
  • 如果你想要有海一般的情怀,那么,你首先要有它的惊涛骇浪;如果你想要有山一般的高度,那么,你首先要有它的不卑毅力。 ...
    圭靠阅读 1,364评论 0 0