设置多选选择框的高度

Posted

技术标签:

【中文标题】设置多选选择框的高度【英文标题】:Setting a multiselect Chosen box's height 【发布时间】:2012-09-20 09:17:11 【问题描述】:

我正在使用带有多选下拉菜单的 Chosen,并希望将所选框的高度设置为设定的大小。

我在一个对话框中选择了一个带有溢出:隐藏的框,并且选择的框绝对位于容器之外(以便选择的下拉菜单正确弹出对话框。)不幸的是,“位置:绝对;”将其从流程中删除,并导致没有高度...使对话框缩小并且多选似乎从中弹出。我可以将父容器设置为固定的高度,但是多选择展开展开作为更多选项,并且我仍然在长列表中遇到同一个问题。

有没有办法将选定的多选设置为特定高度?谢谢!

【问题讨论】:

【参考方案1】:

没关系...我自己用 CSS 想出来的:

.mycontainer 
    height: 120px;


.mycontainer .chzn-container-multi .chzn-choices 
    height: 120px !important;
    overflow-y: auto;

.mycontainer 是保存所选下拉列表的 div。


请停止编辑答案。此答案与 2 年前我最初提出该问题时可用的 Chosen 版本一致。对于那些使用较新版本(即 1.4.2)的人,您可以尝试将上述 CSS 中的“chzn”前缀更改为“chosen”......但不能保证这会起作用(我没有看过他们的新样式。)

【讨论】:

你可以选择它作为答案!谢谢顺便说一句。 我添加了“.mycontainer .ms-list”并且工作正常。 (不是 .chzn-container-multi .chzn-choices) 这在 1.6.2 中不起作用 - 高度会改变,但内部元素不会像预期的那样垂直居中。【参考方案2】:
.chzn-container .chzn-results  max-height: 150px; 

【讨论】:

一些解释可能有助于这里的答案。【参考方案3】:

这就是我的诀窍:

.mycontainer .chosen-choices 
  max-height: 150px;
  overflow-y: auto;

你基本上是想限制保存选项的 ul 的高度。

【讨论】:

【参考方案4】:

我能够在下面的 css 类中解决列表高度:

.chzn-container .chzn-results 
height: 150px;

我得到了剩余列表的滚动条。

【讨论】:

【参考方案5】:

所有其他答案都有效,但我相信这是最优雅的解决方案:为.chzn-results 设置一个新的最大高度(例如150px)。所有相关的其他块将紧随其后。这样下拉菜单不会太大而只有几个结果。

.chzn-results 
   max-height: 150px;

如果你真的想要一个固定的高度,即使结果很少,只需使用以下代码:

.chzn-results 
   height: 150px;

(如果您需要覆盖chosen.css 的行为,请将!important 添加到行中)

【讨论】:

【参考方案6】:

从 v1.8.3 开始,这有效:

.chosen-container .chosen-results 
    max-height: 60vh;

我建议使用vh 而不是px:将其呈现为可用屏幕高度的百分比,因此它不会溢出屏幕。

【讨论】:

以上是关于设置多选选择框的高度的主要内容,如果未能解决你的问题,请参考以下文章

vue中使用计算属性巧妙的实现多选框的“全选”

antd+vue3 多选框的值为对象数组

ElementUI 将table多选框改为单选框的解决办法

jquery.multiselect.js 实现下拉框多选怎么设置默认全部选中下拉框的值,

[oldboy-django][2深入django]老师管理 -- form表单如何生成多选框标签,多选框的默认值显示,以及多选框数据插入到数据库,多选框数据更改到数据库

jQuery 多选下拉框插件