隐藏<select>元素中的垂直滚动条

Sta*_*tan 57 html css

您好我选择了多个选项框,我需要隐藏垂直滚动条,是否可能?

<select name="sCat" multiple="true">
<!-- My Option Here -->
</select>
Run Code Online (Sandbox Code Playgroud)

好吧,但是我怎么能实现一个效果,我可以从列表中选择具有ID的项目,然后使用jQuery来管理这个id.click函数?那我应该用什么元素?

小智 69

这是我们欣赏CSS3所有功能的地方

.bloc {
  display: inline-block;
  vertical-align: top;
  overflow: hidden;
  border: solid grey 1px;
}

.bloc select {
  padding: 10px;
  margin: -5px -20px -5px -5px;
}
Run Code Online (Sandbox Code Playgroud)

小提琴

  • "这是我们欣赏CSS3所有功能的地方." 有人能告诉我CSS3在哪里吗? (32认同)
  • 它不是真正的css3,你可以在CSS2中做同样的事情或者(通过调整)甚至1.事实上,它更像是一个hack而不是select的真实样式,它仍然没有样式. (11认同)
  • 优秀的解决方 (2认同)

Mik*_*ung 61

我知道这个帖子有点旧,但是这里有很多非常好的答案,所以我想提供一些更简单,更清洁的东西:

select {
    overflow-y: auto;
}
Run Code Online (Sandbox Code Playgroud)

正如您在这个小提琴中所看到的,如果您不知道将要具有的选择选项的确切数量,此解决方案将为您提供灵活性.如果您不需要它而不隐藏其他情况下可能的额外选项元素,它会隐藏滚动条.不要做所有这些hacky重叠的div东西.它只会造成难以理解的标记.

  • 没问题,当你拥有它们时,总是应该回答答案.这就是人类所有的一切. (2认同)
  • 为什么这个答案没有被选为最佳答案? (2认同)
  • @JuanLanus 好吧,我想我对 auto 的含义有误解。显然, auto 只是让浏览器来决定如何处理滚动条,而 Firefox 处理它的方式与其他人不同,这是非常蹩脚的。请参阅此链接中的语法部分:https://developer.mozilla.org/en-US/docs/Web/CSS/overflow (2认同)
  • 这与最受欢迎的答案一样有效,而且更清洁. (2认同)

Guf*_*ffa 23

不,您无法详细控制选择框的外观.

选择框通常显示为下拉列表,但没有任何内容表明它总是必须以这种方式显示.它的显示方式取决于系统,例如,在某些手机上你根本没有得到一个下拉列表,而是一个覆盖大部分或全部屏幕的选择器.

如果要控制表单元素的详细外观,则必须使用常规HTML元素创建自己的表单控件(或找到已经完成此操作的其他人).


小智 8

如果其他人遇到这个问题,供将来参考。我找到了一个适用于所有现代浏览器的解决方案:

select{
    scrollbar-width: none; /*For Firefox*/;
    -ms-overflow-style: none;  /*For Internet Explorer 10+*/;
}

select::-webkit-scrollbar { /*For WebKit Browsers*/
    width: 0;
}
Run Code Online (Sandbox Code Playgroud)

基本上这样滚动条的宽度被设置为 0,因此不会显示。


1j0*_*j01 5

仅限 Chrome(或许还有其他 webkit 浏览器):

/* you probably want to specify the size if you're going to disable the scrollbar */
select[size]::-webkit-scrollbar {
	display: none;
}
Run Code Online (Sandbox Code Playgroud)
<select size=4>
  <option>Mango</option>
  <option>Peach</option>
  <option>Orange</option>
  <option>Banana</option>
</select>
Run Code Online (Sandbox Code Playgroud)