2010-01-27 5 views
0

J'ai essayé d'obtenir la hauteur d'un DIV en utilisant "dojo.marginBox", mais je continue à obtenir la mauvaise taille dans IE6.dojo.marginBox retourne la mauvaise hauteur dans IE6

est ici une partie de mon code:

<div id="outerDiv"> 
    <div id="hiderDiv" class="hider"></div> 
    <div id="contentDiv1"></div> 
    <div id="contentDiv2"></div> 
    <div id="contentDiv3"></div> 
</div> 

Le CSS pour le "hiderDiv" ressemble à quelque chose comme ceci:

position: absolute; background-color: grey; opacity: 0.5; z-index: 1000; 

Ce que je pense à faire est la suivante: les trois contenus-DIVs sera rempli dynamiquement avec du contenu, donc je ne sais pas quelle hauteur le "outerDiv" va finir par. Le "innerDiv" est censé empêcher les utilisateurs de cliquer sur n'importe quel contenu (tout en gardant le contenu "grisé" mais visible). Comme la hauteur de contenu change de façon dynamique à chaque chargement de page, j'ai essayé de récupérer la hauteur de "outerDiv" après que tout le contenu a été chargé, puis d'appliquer cette hauteur à "hiderDiv" pour couvrir tout le contenu:

dojo.style("hiderDiv", "height", dojo.marginBox("outerDiv").h + "px"); 

ce qui fonctionne, mais (surprise!) pas IE6 ...

J'ai vérifié la hauteur qui est retournée par « marginBox » et il est moyen de haut dans IE6 (en fait, il couvre la hauteur "outerDiv" plus un autre DIV qui est en dehors de "outerDiv" - je ne sais pas, pourquoi cela arrive). Ce que j'ai découvert: si je règle la hauteur de "outerDiv" à "0px" par programme (en utilisant dojo.style) avant de remplir le contentDivs, cela fonctionne dans IE6, mais en FF la hauteur restera juste 0px et sera gagnée Ne pas mettre à jour après que le contenu a été rempli et ainsi gâcher ma mise en page.

Ma solution, que je n'aime pas, c'est la raison pour laquelle je vous écris ce post:

if (dojo.isIE == 6) 
    dojo.style("outerDiv", "height", "0px"); 

Si quelqu'un a une approche différente (en dehors de « drop IE6 soutien » :), je d l'apprécier.

Salutations, Select0r

+0

Il est non seulement que "marginBox" produirait l'erreur dans IE6, "coords" et "position" donnent les mêmes (faux) résultats. – Select0r

Répondre

0

Eh bien, comme cette question n'a pas reçu attention depuis plus d'un an maintenant, je vais accepter ma solution comme la réponse :)

if (dojo.isIE == 6) 
    dojo.style("outerDiv", "height", "0px"); 
Questions connexes