Est-ce qu'il existe un hack pour avoir un équivalent de clientLeft et clientTop sous FireFox 2 ? C'est introduit avec FireFox 3, mais je le cherche pour FireFox 2.
Mais ce n'est pas parfait, parce que si la bordure droite et gauche n'ont pas la même taille, alors le résultat est faux. Ce n'est pas un hack, mais plutôt un fallback.
D'ailleur c'est même précisement
parseInt ((div.offsetWidth - div.clientWidth) / 2, 10) parce que la division par 2 peut ne pas tomber juste.
Bon, en fait je viens de véfifier que même si on donne dans la feuille de style, une largeur de bordure en ex, em, ou tout ce que l'on peut, alors FireFox renvoit toujours une valeur en px pour la largeur de la bordure telle qu'obtenue via getComputedStyle.
Donc l'alternative est simple : utiliser les valeurs borderLeftWidth et borderTopWidth de computedStyle.
Note 1 : Tout ceci en supposant bien sûr que la chose ayant un impact sur clientLeft et clientTop, est la largeur de la bordure.
Note 2 : Seul FireFox renvoie systématiquement une largeur converti en px pour les membres getComputedStyle. Pour les autres navigateurs, il faut donc toujours utiliser clientLeft et clientTop.