to resize my map I put an onresize on the body itself which calls a function to recalculate the content div.HTML
<body class="tundra" onresize="onPageResizeHandler()">
<form id="form1">
<div id="header">
</div>
<div id="leftcolumn" dojotype="dijit.layout.ContentPane">
</div>
<div id="center" dojotype="dijit.layout.ContentPane">
<div id="map" style="width:1200px; height:600px; border:1px solid #000;"></div>
</div>
</form>
</body>
JS
function onPageResizeHandler() {
var _header = dojo.marginBox(dojo.byId("header"));
var _leftcolumn = dojo.marginBox(dojo.byId("leftcolumn"));
var windowsize = getWindowSize();
_height = windowsize.h - _header.h;
_width = windowsize.w - _leftcolumn.w;
var centerbox = dojo.marginBox(dojo.byId("center"), {
h: _height,
w: _width
});
var leftcolumnbox = dojo.marginBox(dojo.byId("leftcolumn"), {
h: _height
});
var centerbox2 = dojo.marginBox(dojo.byId("center"));
centerbox2.l = 0;
centerbox2.t = 0;
dojo.publish("ResizeMap", [centerbox2]);
};
The publish basically calls a function and passes the center div measurements to it
var mapDiv = dojo.byId(this.map.id);
dojo.style(mapDiv, {
left: contentBox.l + "px",
top: contentBox.t + "px",
width: contentBox.w + "px",
height: contentBox.h + "px"
});
this.map.resize();
this.map.reposition();
Looks kind of cumbersome but it works in all browsers without getting into overly complicated CSS if you just want the map to be 100% height and width in a div tag on the page.