11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai en fait deux questions:

1. Est-ce que l'un d'entre vous pourrait m'indiquer comment récupérer la valeur du margin-top d'un élément ?

2. Connaissez-vous un site qui me permettrait de trouver ce genre d'infos "tout seul comme un grand". J'ai essayer sur le site du W3C mais c'est très vaste et je n'ai pas le temps de me perdre dans leur document pour l'instant.

Merci bcp pour votre aide.
(edit) oups le bbcode déconne on dirait

Perso j'utilise la référence O'Reilly fournie dans Dreamweaver, la syntaxe js est indiquée pour toute les propriétés CSS, c'est très pratique Smiley smile

La syntaxe JS est la suivante :

document.getElementById('elementID').style.marginTop
Modifié par MrPatate (23 Aug 2006 - 14:50)
J'ai du à nouveau manquer de précision dans ma question. Désolé.

L'objet style ne me retournera une valeur que si j'ai défini mon style inline c'est à dire via l'attibut style de l'élément dans mon code html.
Or ici, ce n'est pas le cas.
Le margin-top est défini dans une feuille de style externe et j'aimerais récupérer sa valeur pour l'assigner à un autre élément.
Modifié par Mathieu_vd (23 Aug 2006 - 16:24)
Ah oui effectivement autant pour moi, tu ne peux pas lire la propriété directement, seulement la modifier.

Tu peux accéder à tes règles CSS avec l'objet document.styleSheets comme ça :


var s = document.styleSheets[0].cssRules[0].style;
alert(s.marginTop);


Ici tu récupère les styles de la première règle CSS de la 1ere feuille de styles, il faut donc compter la position du sélecteur CSS que tu veux cibler.

Ah et je crois que c'est document.styleSheets[0].rules[0] pour IE, à verifier Smiley smile
Merci bcp.

Ce qui est dommage, c'est que la suppression ou l'ajout d'une définition CSS risque de faire planter le script...

Je vai essayer de voir si on peut éviter cela.
Pour Internet Explorer uniquement : remplacer style par currentStyle dans nomElement.style.marginTop.
L'objet currentStyle d'IE permet de récupérer les propriétés CSS de l'élément où qu'elles aient été définies. IL existe certainement un équivalent pour firefox et opera.