我有一个dojoType dijit.layout.BorderContainer的div,并且我试图相对于视口的大小动态设置此bordercontainer的大小。创建边框容器的html代码是

    <div dojoType="dijit.layout.BorderContainer" design="sidebar" gutters="true" liveSplitters="true" id="borderContainer" style="border: solid green 3px;">
<div dojoType="dijit.layout.ContentPane" splitter="true" region="leading" style="width: 230px; padding:2px 0px 0px 0px;">
</div>
</div>


我正在使用以下JavaScript代码更新边框容器的大小

var viewport    =   dojo.window.getBox(dojo.doc);
dojo.setStyle('borderContainer','height','430px');


但是在执行代码时,我能够看到要更改的边框容器类型的div的大小,但是bordercontainer类型的div内的div并没有改变。

最佳答案

您将需要在小部件上调用resize,小部件将调整其子级的大小。

var viewport    =   dojo.window.getBox(dojo.doc);
var borderContainer = dijit.byId('borderContainer');

dojo.setStyle(borderContainer.domNode, 'height','430px');
borderContainer.resize();


另一种方法

当我希望边框容器占据整个屏幕时,我会将其heightwidth设置为100%。边界容器的所有父dom节点也需要设置为100%的高度(即<html><body>等)

10-08 19:42