设置Dojo按钮的宽度

时间:2011-07-21 04:23:15

标签: javascript css dojo

注意:它与this question

相关

我正在尝试以编程方式创建一个dojo按钮:

var btnOK = new dijit.form.Button({
    label: "OK",
    showLabel: true,
    style: "height: 20px; width: 50px;"
});

现在即使我指定宽度,显示按钮宽度也设置为最小(即文本+边距)。 answer中解释的原因是dojo会覆盖按钮(class="dijitButtonNode")的css样式。进一步(在同一答案中)宽度是通过覆盖同一类的样式来设置的。

是否可以在没有此css解决方法的情况下执行相同操作(即设置宽度)?

4 个答案:

答案 0 :(得分:7)

最后,我解决了这个问题。要设置宽度,我们必须使用dojo.style函数设置宽度

    dojo.create("button",{id: "btnOK",type: "button"},dojo.body());

    var btnOK = new dijit.form.Button({
                label: "OK",
                showLabel: true,
                style: "height: 20px;"
                },
               "btnOK");

    dojo.style("btnOK","width","40px");

答案 1 :(得分:3)

为我工作:

    domStyle.set(btnOk.domNode, "width", "100px");
    domStyle.set(btnOk.domNode.firstChild, "display", "block");

答案 2 :(得分:0)

另一种可能的解决方案是在按钮中添加一个类:

<input type="button" data-dojo-props="label : 'Test'" class="normalButton" id="test" data-dojo-type="dijit/form/Button" />

在你的CSS中:

.normalButton span{
    width: 100px;
}

额外:如果你添加这个类,你的文本对齐就会搞砸了。这可以通过添加以下CSS规则来解决:

.{your theme: eg. tundra} .dijitButtonText{
    padding: 0;
}

最后,请查看my fiddle

答案 3 :(得分:0)

全宽按钮:https://jsfiddle.net/51jzyam7/

HTML:

<body class="claro">
    <button id="myButtonNode" type="button"></button>
</body>

JS:

require(["dijit/form/Button", "dojo/dom", "dojo/domReady!"], 
    function(Button, dom){
    var myButton = new Button({
    label: "My big button",
    class: 'myCSSClass',
}, "myButtonNode").startup();
});

CSS:

.dijitButton.myCSSClass{
    display: block;
 }
.dijitButton.myCSSClass .dijitButtonNode{
    width:100%;
}