样式dijit.form.Select下拉菜单

时间:2013-10-07 09:19:10

标签: forms select dojo

如果使用HTML标记,如何设置dijit.form.Select 下拉列表菜单的样式。

<select id="sourceselect"   dojoType="dijit.form.Select" style='width:200px' onChange="changeDetected();">
</select>

要明确说明要设置内容填充的下拉菜单的样式。我想更改该菜单的高度,如果超出高度,则需要滚动条。

我使用的是Dojo 1.6版。这是一个小提琴示例:http://jsfiddle.net/NH7dd/

编辑:为什么缺点?

2 个答案:

答案 0 :(得分:3)

Dojo生成的菜单位于DOM节点的根目录中。这是一个常见的错误,菜单以某种方式相对于文本字段定位,但事实并非如此。

如果您想更改菜单的样式,则可以使用以下CSS选择器:

div[dijitpopupparent="sourceselect"] > .dijitMenu {
    /** Your CSS */
}

这可行的原因是因为菜单包含在dijit/popup内。此弹出窗口允许显示/隐藏菜单,您可以看到它具有属性dijitpopupparent,该属性具有该字段的原始ID。

我还更新了你的JSFiddle,现在看起来像this。但我真的不建议像这样改变菜单的行为,因为你可能会搞乱组合框的原始功能/行为。我的意思是,现在我有问题去某些值,因为一个“滚动刻度”已经传递了一个值。随着更新的风格,我甚至无法正确选择“2”。


编辑:在更新的JSFiddle中,滚动条始终可见,如果您希望仅在有更多选项时显示滚动条,则将overflow-y: scroll更改为overflow-y: auto

答案 1 :(得分:0)

您可以为maxHeight设置属性。

<select id="sourceselect"   
dojoType="dijit.form.Select"
data-dojo-props="maxHeight: 200" 
style='width:200px' 
onChange="changeDetected();">
</select>

此外,dojo的新语法是“data-dojo-type”而不是“dojoType”。

这是显示maxHeight属性的JSFiddle。 (我使用了dojo 1.9,但是maxHeight可用于1.6) http://jsfiddle.net/NH7dd/17/