我一直在尝试用“dojo.marginbox”来获得一个div的高度,但是我在ie6中一直得到错误的高度。
以下是我的部分代码:
<div id="outerDiv">
<div id="hiderDiv" class="hider"></div>
<div id="contentDiv1"></div>
<div id="contentDiv2"></div>
<div id="contentDiv3"></div>
</div>
“hiderdiv”的CSS如下所示:
position: absolute; background-color: grey; opacity: 0.5; z-index: 1000;
我希望它做的是:这三个内容分隔将动态地填充一些内容,所以我不知道“outerdiv”将以哪个高度结束。
“innerdiv”应该防止用户单击任何内容(同时仍然保持内容“灰显”但可见)。
当内容高度在每次页面加载时动态变化时,我尝试在所有内容加载后检索“outerdiv”的高度,然后将该高度应用于“hiderdiv”以覆盖所有内容:
dojo.style("hiderDiv", "height", dojo.marginBox("outerDiv").h + "px");
这是可行的,但是(惊喜!)不是IE6…
我检查了由“边缘框”返回的高度,它在IE6中是很高的(事实上,它覆盖了“outerdiv”的高度加上“outerdiv”之外的其他分区-我不知道为什么会发生这种情况)。
我发现:如果我在填充ContentDiv之前以编程方式(使用dojo.style)将“outerDiv”的高度设置为“0px”,它在IE6中工作,但在FF中,高度将保持为0px,并且在填充内容后不会更新,从而破坏了我的布局。
我的解决方案,我不喜欢,这就是我写这篇文章的原因:
if (dojo.isIE == 6)
dojo.style("outerDiv", "height", "0px");
如果有人有不同的方法(除了“放弃IE6支持”),我会很感激。
问候语,
选择0R