我正在使用Dojo v1.8过滤选择组件。我在下拉列表中有一些文字。当我在过滤选择中键入文本时,我发现一些字符正在剪切长度并显示在过滤选择框之外。
注意:我必须打开强制宽度属性,但无法移除。
请找到jsfiddle网址,我保存了我的示例代码。输入“全部”,然后重现该问题。
URl:jsfiddle.net/sumanth418/KUH3P /
由于
答案 0 :(得分:3)
这是你发现的一个有趣的错误。似乎菜单项CSS代码实际上使用了以下CSS属性:
.dijitMenuItem {
white-space: nowrap;
}
这意味着如果内容没有在框中修复,它将不会创建一个新行,但它实际上只会通过(这就是你所看到的效果)。如果在某处定义overflow
属性,那就没有问题。如果我查看dijitComboBoxMenu
的CSS,我会注意到以下内容:
.dijitComboBoxMenu {
overflow: visible;
}
两个CSS属性组合在一起,使内容溢出,溢出的内容也可见。
这看起来像一个bug,的确如此。如果我使用Dojo 1.9.1运行您的代码,问题就解决了,溢出的内容是不可见的。
要手动修复您的问题(如果无法升级到Dojo 1.9.1),您可以执行以下操作:
将white-space
属性更改为inherit
。这将导致溢出的内容显示在下一行。
将overflow
的{{1}}属性更改为dijitMenuItem
。这将隐藏溢出的内容(如Dojo 1.9.1中的修复程序)
将hidden
的{{1}}属性更改为overflow
。这将在组合框菜单中添加水平和垂直滚动条。但是,由于dijitComboBoxMenu
被内联CSS覆盖,因此您需要附加scroll
修饰符
如果你不喜欢解决方案3中的垂直滚动条,你可以使用:
overflow
但是,!important
属性是一个CSS3属性,可能不适用于旧版浏览器。