2009-11-23 15 views
1

Je crée un composant basé sur curseur dans GWT.Comment convertir 100% en px en HTML

Parent : width = 100% 
.-------------------------------------------------. 
| .---------------------------------------------. | 
| |  Child : width = X      | | 
| '---------------------------------------------' | 
'-------------------------------------------------' 

où X = (largeur du parent en px) - (certains calculs basés sur l'exécution);

Mon code dit:

int providedWidth = parentContainer.getOffsetWidth(); 

Dans Firefox, je reçois correctement la largeur comme (par exemple) 345px Mais dans IE6, il revient en permanence la largeur 0, peu importe quelle taille il est. De la perspective GWT, Parent est un AbsolutePanel placé dans un DockPanel (super parent), Child est un HorizontalPanel.

Je n'ai pas placé de code ici pour la brièveté, est-il un autre moyen d'obtenir la largeur ou suis Je fais quelque chose de mal?

Répondre

3

Juste une supposition sauvage, mais peut-être que l'élément a besoin de "mise en page" dans IE6? Pouvez-vous lui donner style='zoom:1'?

+0

J'étais sur le point de suggérer cela. +1 –

+0

Ne fonctionne pas, Mais c'est une grande suggestion prête à l'emploi: pour appeler la méthode hasLayout(). Homme Je souhaite que cela fonctionne, Mais, IE rapporte encore comme 0. –

+0

sur des lignes similaires, je lui ai fourni une bordure en utilisant les outils de développement et il a soudainement sauté !! peut-être le hasLayout n'a pas été déclenché jusque-là ... –

2

Dans IE, vous devez parfois obtenir les informations de taille dans une commande DeferredCommand, car IE n'effectue la mise en page qu'une fois le thread d'événement terminé.

+0

N'a pas travaillé non plus, mais merci pour la suggestion. –

+0

Quel est le type du conteneur parent? Est-ce vraiment un 100% de la fenêtre du navigateur? –