如何用css隐藏scrollbar
我是怎么遇到这个问题的?
其实这个问题在去年我就遇到过了,准确的说不是我遇到了,是同事(舒柳)遇到了,与我一起探讨怎么解决这个问题,当时也是惭愧,没能给同事解决。今天在项目里面再一次遇到这个问题,瞬间记上心头,研究了一下,解决了这个问题,随笔记下以便后续查看。
问题的根本
下拉滑动的scrollbar
影响了整体的设计,布局等。原本有这个scrollbar
是给用户一个提示:诶,下拉可以看到更多内容哦~
。但是碍于设计等诸多原因,我想把它干掉。
解决方案
核心思路:
- 利用
overflowY: scroll
让溢出内容滚动 - 利用
overflow: hidden
这条样式隐藏掉scrollbar
上面两句话搞定了直接上代码。
首先是问题复现。
1 | // Test.tsx |
复制
样式如下:
1 | // Test.module.less |
复制
这里我让container
铺满全屏,且用定位固定child
的位置让其居中,虽然我给了child
800像素的宽高,但是在child
里面我写了大量的<P>
标签,高度是远远溢出的。
好了,现在我已经复现了问题,接下来就要用overflow: hidden
这条样式隐藏掉scrollbar
。
不多说直接上修改后的代码
1 | // Test.tsx |
复制
样式:
1 | // Test.module.less |
复制
这样,你可以看到scrollbar
被完全隐藏了起来,我让parent
的宽度略小于child
的宽度,以便让其在x
方向上隐藏掉了scrollbar
。
当然我也可把这个封装成一个组件以后直接拿来即用。
组件:
1 | // component/HiddenScrollbar.tsx |
复制
使用:
1 | // Text.tsx |
复制
以此谨记下我在前端的爬坑。