Я пытался получить высоту DIV с помощью «dojo.marginBox», но в IE6 получаю неправильную высоту.
Вот часть моего кода:
<div id="outerDiv">
<div id="hiderDiv" class="hider"></div>
<div id="contentDiv1"></div>
<div id="contentDiv2"></div>
<div id="contentDiv3"></div>
</div>
CSS для «hiderDiv» выглядит примерно так:
position: absolute; background-color: grey; opacity: 0.5; z-index: 1000;
Я ожидаю, что это произойдет так: три DIV-файла контента будут динамически заполняться некоторым контентом, поэтому я не будуне знаю, с какой высотой получится "externalDiv".Предполагается, что «innerDiv» не позволяет пользователям нажимать на любой контент (при этом контент остается «серым», но видимым).
Поскольку высота содержимого динамически изменяется при каждой загрузке страницы, япопытался получить высоту «externalDiv» после загрузки всего контента, а затем применить эту высоту к «hiderDiv», чтобы охватить весь контент:
dojo.style("hiderDiv", "height", dojo.marginBox("outerDiv").h + "px");
Что работает, но (удивительно!) не вIE6 ...
Я проверил высоту, возвращаемую "marginBox", и это значит, что в IE6 она высока (на самом деле она покрывает высоту "externalDiv" плюс некоторые другие DIV вне "externalDiv"Я понятия не имею, почему это происходит).
Что я обнаружил: если я устанавливаю высоту "outerDiv" равным "0px" программно (используя dojo.style) перед заполнением contentDivs, это работает в IE6, но в FF высота просто останется 0px и не будет обновляться после того, как содержимое будет заполнено и так испортит мой макет.
Мой обходной путь, который мне не нравится, поэтому я пишуэта почта:
if (dojo.isIE == 6)
dojo.style("outerDiv", "height", "0px");
Если у кого-то другой подход (кроме «отбросить поддержку IE6» :), я был бы признателен.
Привет, Select0r