Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >通过CSS在特定情况下显示/隐藏滚动条

通过CSS在特定情况下显示/隐藏滚动条
EN

Stack Overflow用户
提问于 2021-02-12 21:58:51
回答 3查看 47关注 0票数 0

我有一个应用程序,在大多数情况下,我不想要一个显示的滚动条,所以我用以下代码手动隐藏它:

代码语言:javascript
运行
AI代码解释
复制
// Chrome, Safari and Opera
::-webkit-scrollbar {
    display: none;
}

body {
    -ms-overflow-style: none; // IE and Edge
    scrollbar-width: none; // Firefox
}

但是在有一种情况下,我需要显示一个滚动条,但是我不能让它在这种情况下显示,比如一个名为.show-scrollbar的特定类。

我一直在尝试这样的东西:

代码语言:javascript
运行
AI代码解释
复制
.show-scrollbar {
   ::-webkit-scrollbar {
     display: initial;
   }
    -ms-overflow-style: initial; // IE and Edge
    scrollbar-width: initial; // Firefox
}

不幸的是无济于事。这是我的作品的演示:

代码语言:javascript
运行
AI代码解释
复制
const App = () => {

  return (
  <div>
    <div className='some-div'>
      <h3>Must NOT Show Scrollbar</h3>
      Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
    </div>
    <br/>
    <div className='some-div show-scrollbar'>
      <h3>Must Show Scrollbar</h3>
      At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
    </div>
  </div>
  )
}


ReactDOM.render(
    <App />,
    document.getElementById('app')
);
代码语言:javascript
运行
AI代码解释
复制
::-webkit-scrollbar {
    display: none;
}

body {
    -ms-overflow-style: none;
    scrollbar-width: none;

    font-size: 16px !important;
}

.some-div {
 max-height: 100px;
 overflow: scroll;
 border: 1px red solid;
}

.show-scrollbar {
  ::-webkit-scrollbar {
    display: initial;
  }
  
  -ms-overflow-style: initial;
    scrollbar-width: initial;
}
代码语言:javascript
运行
AI代码解释
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.0/umd/react-dom.production.min.js"></script>
<div id="app"></div>

那么,我如何才能只为具有.show-scrollbar类的元素添加它呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-12 23:11:16

这似乎是::-webkit-scrollbar中的一个错误。查看:https://bugs.webkit.org/show_bug.cgi?id=152226

你能做的就是搜索默认的滚动条值并创建一个自定义的滚动条,如下所示:

代码语言:javascript
运行
AI代码解释
复制
body {
  font-family: sans-serif;
  font-size: 16px;
}

.wrapper {
  max-height: 100px;
  border: 1px red solid;
  overflow: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.wrapper::-webkit-scrollbar {
  all: unset;
  /* or display: none; */
}

.has-scrollbar {
  -ms-overflow-style: initial;
  scrollbar-width: initial;
}

.has-scrollbar::-webkit-scrollbar {
  all: initial;
  /* or display: initial; */
}

.has-scrollbar::-webkit-scrollbar-track {
  background-color: #f1f1f1;
}

.has-scrollbar::-webkit-scrollbar-thumb {
  background-color: #a8a8a8;
}
代码语言:javascript
运行
AI代码解释
复制
<div>
  <div class="wrapper">
    <h3>Must NOT Show Scrollbar</h3>
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem
    accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab
    illo inventore veritatis et quasi architecto beatae vitae dicta sunt
    explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut
    odit aut fugit, sed quia consequuntur magni dolores eos qui ratione
    voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum
    quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam
    eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat
    voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam
    corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
    Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse
    quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo
    voluptas nulla pariatur?
  </div>
  <br />
  <div class="wrapper has-scrollbar">
    <h3>Must Show Scrollbar</h3>
    At vero eos et accusamus et iusto odio dignissimos ducimus qui
    blanditiis praesentium voluptatum deleniti atque corrupti quos dolores
    et quas molestias excepturi sint occaecati cupiditate non provident,
    similique sunt in culpa qui officia deserunt mollitia animi, id est
    laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita
    distinctio. Nam libero tempore, cum soluta nobis est eligendi optio
    cumque nihil impedit quo minus id quod maxime placeat facere possimus,
    omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem
    quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet
    ut et voluptates repudiandae sint et molestiae non recusandae. Itaque
    earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
    voluptatibus maiores alias consequatur aut perferendis doloribus
    asperiores repellat.
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2021-02-12 22:44:44

您是否删除了“display:none”并尝试了overflow?

代码语言:javascript
运行
AI代码解释
复制
 .show-scrollbar {
overflow: auto;
}

代码语言:javascript
运行
AI代码解释
复制
 .show-scrollbar {
overflow: scroll;
}

or a combinator?

/*   former_element ~ target_element       */

.div-with-no-scroll ~ .div-immediately-following-with-scroll {
overflow: scroll;
}

you would need to remove your <br> between the div's for combinator
票数 0
EN

Stack Overflow用户

发布于 2021-02-12 23:18:42

如果我理解这个问题,滚动条不应该出现在窄屏幕上。

代码语言:javascript
运行
AI代码解释
复制
@media (max-width: NNNpx) {
   // Chrome, Safari and Opera
  ::-webkit-scrollbar {
    display: none;
  }
  body {
    -ms-overflow-style: none; // IE and Edge
    scrollbar-width: none; // Firefox
  }
}

并且可以出现在更宽的屏幕上

代码语言:javascript
运行
AI代码解释
复制
@media (min-width: NNNpx) {
  //see the JosBroers answer
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66179574

复制
相关文章
使用CSS隐藏元素滚动条
如何隐藏滚动条,同时仍然可以在任何元素上滚动? 首先,如果需要隐藏滚动条并在内容溢出时显示滚动条,只需要设置overflow:auto样式即可。想要完全隐藏滚动条只需设置overflow:hidden即可,但是这样一来将导致元素内容不可滚动。时至今日,还没有任何一条CSS规则可以使元素可以隐藏滚动条的同时依然可以滚动内容,只能通过针对特定浏览器设置滚动条样式来实现。 Firefox浏览器 对于Firefox,我们可以将滚动条宽度设置为none:
用户6167509
2019/09/04
4.8K0
html div 隐藏滚动条样式,div滚动条样式隐藏与显示
DIV滚动条样式是可以设置的,CSS滚动条同样也可以显示与隐藏,对div设置滚动条,设置其横向滚动条和纵向滚动条样式应该怎么做呢?
全栈程序员站长
2022/09/14
8.9K0
CSS div隐藏滚动条「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
3.1K0
CSS div隐藏滚动条「建议收藏」
css怎么隐藏滚动条「建议收藏」
法一: ①使用伪类隐藏滚动条(仅限Chrome与Safari) ②scrollbar-width: none;(仅限firefox) ③-ms-overflow-style: none;(仅限IE 10+)
全栈程序员站长
2022/11/01
4.8K0
OpenCV 利用滚动条在不缩小的情况下显示大型图片
最近由于项目需要,要在不缩小的情况下显示一张2500*2000大小的图片,找到了一篇博客写的非常好,是邹老师写于2011年的: http://blog.csdn.net/chenyusiyuan/article/details/6565424
chaibubble
2022/05/07
7160
OpenCV 利用滚动条在不缩小的情况下显示大型图片
通过css设置滚动条样式
在移动端通常情况下滚动条是不显示出来,这样会让一些不明就里的人不知道是否可以滑动查看更多的信息,通过css可以来设置滚动条的样式,并且让它一直显示出来。
OECOM
2020/07/01
1.8K0
CSS实现隐藏滚动条但是可以滚动
今天记录一个很小的问题,在工作之中会经常遇到的,当页面元素溢出的时候会产生滚动条,这个时候需要页面样式优化:CSS实现隐藏滚动条但是可以滚动。
王小婷
2019/04/18
3.6K0
CSS实现隐藏滚动条但是可以滚动
CSS设置浏览器滚动条样式及隐藏滚动条
虽然大多数人不会关注到滚动条的样式,但是有一些网站还是对滚动条进行了优化,比如网易邮箱。我们可以用 CSS 来设置浏览器的滚动条样式,下面整理一下 CSS 滚动条的几个属性及代表的意思。
德顺
2019/11/12
21.1K0
HTML5-JS操作页面滚动条(禁止、隐藏、显示、不显示)
不显示滚动条(css) ::-webkit-scrollbar { width: 0px; } 禁止页面滚动条(js) document.body.parentNode.style.overflowY = "hidden"; $("body").parent().css("overflow-y","hidden"); 启用浏览器滚动条(js) document.body.parentNode.style.overflowY = "auto"; $("body").parent().css("overflo
手撕代码八百里
2020/07/28
11K0
PyQt5 技术篇-scrollArea不显示滚动条解决方法。Qt Designer不显示滚动条。滚动条的显示和隐藏。
首先给大家展示一下,必显示滚动条的方法。 PyQt5设置方法: self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
小蓝枣
2020/09/24
4.7K0
PyQt5 技术篇-scrollArea不显示滚动条解决方法。Qt Designer不显示滚动条。滚动条的显示和隐藏。
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
设置 display: block 可以显示元素 , 同时该样式还可以将元素转为块元素 ;
韩曙亮
2023/04/16
5.6K0
【CSS】元素显示与隐藏 ( display 隐藏对象 | visibility 隐藏对象 | overflow 隐藏对象 )
[CSS]JQuery 操作CSS使DIV显示或者隐藏
在某些需求中,你需要点击按钮显示某个div,并隐藏已经显示的按钮。同时点击另外一个按钮,又会隐藏已经显示的,并显示已经影藏的。当然当你使用mvvm框架(vue,react之类的)的框架的时候是不存在这些问题的。显然,当你翻到我这个博客的时候是没有用vue之类的,因此,你只要看我下面的代码就好了
用户2353021
2020/05/11
4.1K0
css如何隐藏垂直滚动条但同时需保持滚动
在写前端页面时,对于超出的内容,我们希望隐藏,同时保持垂直的滚动,但是又不希望有丑陋的垂直滚动条,那该怎么去实现呢
itclanCoder
2023/02/26
2.3K0
css如何隐藏垂直滚动条但同时需保持滚动
css实现横向滚动条(css纵向滚动条)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127724.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/25
7.7K0
css实现横向滚动条(css纵向滚动条)
前端切图:CSS实现隐藏滚动条同时又可以滚动
CSS 实现隐藏滚动条同时又可以滚动 原始功能: 图片发自简书App 添加伪类之后的功能: 图片发自简书App 完整demo如下: <!DOCTYPE html> <html> <hea
王小婷
2018/06/01
2K0
CSS 鼠标悬停图片,显示隐藏文本
我在 JavaScript 鼠标悬停图片,显示隐藏文本 这篇博文当中实现了同样的效果,只不过是通过 JS 来实现的,但其实,通过 CSS 动画也能实现同样的效果,直接看代码吧
Nian糕
2018/08/21
8.6K1
CSS 鼠标悬停图片,显示隐藏文本
odoo 通过Javascript显示或隐藏form自带按钮
odoo14/custom/estate/static/src/js/hide_or_show_form_button.js
授客
2023/05/24
1.8K0
odoo 通过Javascript显示或隐藏form自带按钮
通过CSS判断设备 决定显示与否
引入css /**自适应显示**/ .sjxs{display: none;} @media (max-width: 768px){.sjxs{display: block !important;} .pcxs{display: block;} @media (max-width: 768px){.pcxs{display: none;} /**自适应显示**/ 直接通过class调用 <span class="pcxs"></span> <div class="pcxs"></div> 我的博客即将
小何.
2023/03/03
5020
Hexo+NexT隐藏特定文章
说实话,实现这个功能的初衷,是因为我在做博文图片展示的时候,发现博文不显示标题,所以在主页显示难免有点突兀,所以萌生出想隐藏它的想法,所以经查阅相关资料,结合本人所需的功能设计,实现了功能,下面我就把详细的解决方法整理出来,方便更多有需要的人……
零式的天空
2022/03/27
6200
mui隐藏滚动条的方法
如果用的mui的scroll控件。那么在初始化时,设置indicators为false即可
飞奔去旅行
2019/06/13
2.2K0

相似问题

CSS webkit滚动条显示/隐藏

54

通过CSS隐藏带有显示名称的特定标记

12

通过css显示隐藏内容

40

在CSS中隐藏滚动条?

70

CSS -隐藏滚动条

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文