注意:它与this question。
相关我正在尝试以编程方式创建一个dojo按钮:
var btnOK = new dijit.form.Button({
label: "OK",
showLabel: true,
style: "height: 20px; width: 50px;"
});
现在即使我指定宽度,显示按钮宽度也设置为最小(即文本+边距)。 answer中解释的原因是dojo会覆盖按钮(class="dijitButtonNode"
)的css样式。进一步(在同一答案中)宽度是通过覆盖同一类的样式来设置的。
是否可以在没有此css解决方法的情况下执行相同操作(即设置宽度)?
答案 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%;
}