Dojo FilteringSelect

时间:2013-12-24 14:28:32

标签: dojo

我正在使用Dojo v1.8过滤选择组件。我在下拉列表中有一些文字。当我在过滤选择中键入文本时,我发现一些字符正在剪切长度并显示在过滤选择框之外。

注意:我必须打开强制宽度属性,但无法移除。

请找到jsfiddle网址,我保存了我的示例代码。输入“全部”,然后重现该问题。

URl:jsfiddle.net/sumanth418/KUH3P /

由于

1 个答案:

答案 0 :(得分:3)

这是你发现的一个有趣的错误。似乎菜单项CSS代码实际上使用了以下CSS属性:

.dijitMenuItem {
    white-space: nowrap;
}

这意味着如果内容没有在框中修复,它将不会创建一个新行,但它实际上只会通过(这就是你所看到的效果)。如果在某处定义overflow属性,那就没有问题。如果我查看dijitComboBoxMenu的CSS,我会注意到以下内容:

.dijitComboBoxMenu {
    overflow: visible;
}

两个CSS属性组合在一起,使内容溢出,溢出的内容也可见。


这看起来像一个bug,的确如此。如果我使用Dojo 1.9.1运行您的代码,问题就解决了,溢出的内容是不可见的。

要手动修复您的问题(如果无法升级到Dojo 1.9.1),您可以执行以下操作:

  1. white-space属性更改为inherit。这将导致溢出的内容显示在下一行。

  2. overflow的{​​{1}}属性更改为dijitMenuItem。这将隐藏溢出的内容(如Dojo 1.9.1中的修复程序)

  3. hidden的{​​{1}}属性更改为overflow。这将在组合框菜单中添加水平和垂直滚动条。但是,由于dijitComboBoxMenu被内联CSS覆盖,因此您需要附加scroll修饰符

  4. 如果你不喜欢解决方案3中的垂直滚动条,你可以使用:

  5. overflow

    但是,!important属性是一个CSS3属性,可能不适用于旧版浏览器。