Dojo data-dojo-props样式被覆盖

时间:2012-01-26 10:51:07

标签: css openlayers dojo styling

我正在使用dojo ContentPane来渲染openlayers地图。当DOM准备好并插入地图时,dijit的sytle将被覆盖。我已经尝试通过类和id在CSS中指定高度和宽度,并在我的html中内联。

我的HTML:

<div id="map-id"
class="centerPanel"
    data-dojo-type="dijit.layout.ContentPane"
    data-dojo-props="region: 'center', style: 'width: 1468px;'">
</div>

我的CSS:

#map-id {
width: 1468px;
height: 471px;
}
.centerPanel {
width: 1468px;
height: 471px;
}

来自firebug的实际html:

<div id="map-id" class="centerPanel dijitContentPane dijitBorderContainer-child dijitBorderContainer-dijitContentPane dijitBorderContainerPane dijitAlignCenter olMap" data-dojo-props="region: 'center', style: 'width: 1468px;'" data-dojo-type="dijit.layout.ContentPane" title="" role="group" dir="ltr" style="width: 1455px; left: 252px; top: 48px; right: auto; bottom: auto; height: 456px;" widgetid="map-id">

正如你所看到的那样,数据-dojo-props样式被忽略了,插入了新的高度和宽度...任何想法?

3 个答案:

答案 0 :(得分:1)

我在dojo网格中尝试了这个,它也不起作用。我建议您尝试在javascript代码上执行此操作。

在容器对象中添加具有width和height属性的样式对象。

myGrid = new DataGrid({
    store: myObjectStore,
    structure : myStructure,
    style: {
        width: '1000px', 
        height: '500px', 
    },
}, "myGrid");

我认为声明方式不起作用。

答案 1 :(得分:0)

您可能需要在容器上添加doLayout:false(如果有):)

答案 2 :(得分:0)

BorderContainer的中心区域的大小可以填充剩余的可用空间。如果您希望中心区域具有特定大小,则需要设置BorderContainer的样式,而不是占据中心区域的窗口小部件。