CSS 实现滚动条隐藏

2018-01-25  本文已影响0人  Schoilar

在很多时候,滚动条的出现会严重影响我们的 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,但这也导致在一些浏览器上把过多的内容区域隐藏掉。

参考:

上一篇 下一篇

猜你喜欢

热点阅读