我一直试图使用“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;
我期望它做的是:三个内容-DIV将动态填充一些内容,所以我不知道“outerDiv”最终将以哪个高度。 “innerDiv”应该阻止用户点击任何内容(同时仍然保持内容“灰显”但可见)。
当内容高度在每个页面加载时动态变化时,我尝试在加载所有内容后检索“outerDiv”的高度,然后将该高度应用于“hiderDiv”以覆盖所有内容:
dojo.style("hiderDiv", "height", dojo.marginBox("outerDiv").h + "px");
哪个有效,但(惊喜!)不在IE6中......
我检查了“marginBox”返回的高度,它在IE6中的高位(实际上它覆盖了“outerDiv”的高度加上“outerDiv”之外的其他一些DIV - 我不知道,为什么发生)。
我发现:如果我在填充contentDivs之前以编程方式(使用dojo.style)将“outerDiv”的高度设置为“0px”,它可以在IE6中运行,但在FF中,高度将保持为0px并赢得'在内容填满之后进行更新,从而弄乱了我的布局。
我的解决方法,我不喜欢,这就是我写这篇文章的原因:
if (dojo.isIE == 6)
dojo.style("outerDiv", "height", "0px");
如果有人采用不同的方法(除了“放弃IE6支持”:),我会很感激。
问候, Select0r
答案 0 :(得分:0)
好吧,由于这个问题一年多没有收到任何的注意,我会接受我的解决方法作为答案:)
if (dojo.isIE == 6)
dojo.style("outerDiv", "height", "0px");