Lecture d'une propriété CSS depuis Javascript

Lecture d'une propriété CSS depuis Javascript - HTML/CSS - Programmation

Marsh Posté le 14-05-2009 à 11:28:40    

Salut à tous  :hello:  
 
Voila j'ai un ptit souci, j'aimerai récupérer une propriété définit en CSS dans mon script js.
 
Exemple :
Feuille CSS :  


#truc{
  width: 50px;
  height: 30px;
}


 
Script :  


var width = document.getElementById("truc" ).style.width;


 
Eh ben jme suis rendu compte que je ne peux pas acceder en lecture à la propriété "width". Par contre, tout va bien pour la modification, ca déplece bien ma div (dans le cas ou "truc" est une div). Et par contre encore, une fois que la propriété a été modifiée par mes soins, j'y ai bien accès en lecture.
 
Est-ce que quelqu'un peut m'expliquer si c'est normal ou si je m'y prend mal quelque part ?
 
Merci d'avance :)
 
Pour info : je travaille sur une webapp iphone, donc le navigateur c'est safari mobile :)

Reply

Marsh Posté le 14-05-2009 à 11:28:40   

Reply

Marsh Posté le 14-05-2009 à 11:30:18    

J'ai jamais rencontré de problème similaire... A mon humble avis cherche un bug lié à ta version de navigateur.

Reply

Marsh Posté le 14-05-2009 à 11:41:44    

Jpige pas, ca me fait pareil sous firefox [:spamafote]
 
Quand je vais lire ce qu'il y a dans width, il me renvoi une chaine vide, alors que si je vais lire une autre propriété à la con qui n'existe pas, il me renvoi "undifined". Ce qui veut bien dire que ma propriété width existe :/

Reply

Marsh Posté le 14-05-2009 à 11:44:11    

Ah ok. Tu as une url avec une page qui reproduit le bug?

Reply

Marsh Posté le 14-05-2009 à 11:46:28    

Reply

Marsh Posté le 14-05-2009 à 11:47:16    

gelatine_velue a écrit :

Ah ok. Tu as une url avec une page qui reproduit le bug?


 
Nope l'url est pas accessible depuis une ip extérieur à ma boite.

Reply

Marsh Posté le 14-05-2009 à 11:53:43    


 
Tu pourrais essayer avec offsetHeight, même si c pas standard.

Reply

Marsh Posté le 14-05-2009 à 11:57:38    

est-ce que ca ne viendrait pas du fait que ce soit dans une feuille de style externe? si c'était du css inline, ca marcherait, mais pas avec du externe à mon avis.

 

si c'est du externe, tu dois pouvoir le manipuler comme ca:

Code :
  1. document.styleSheets[0].cssRules[0].cssText
 

mais c'est plus touchy. ^^

 

[edit]je suis un peu en retard, mais mon post est tjs valable à priori. par contre je sais pas si c'est standard. ca à l'air d'être du DOM 2 qqchose: http://www.aptana.com/reference/html/api/CSSRule.html


Message édité par pataluc le 14-05-2009 à 12:02:13
Reply

Marsh Posté le 14-05-2009 à 11:58:29    

La propriété style d'un élément, obtenu via :

Code :
  1. document.getElementById("truc" ).style


Ne renvoit pas au style CSS, mais à l'attribut style. Donc ça ne marchera que si ton élément a un tel attribut, genre :

Code :
  1. <div id="pouet" style="width: 950px">


 
Pour lire effectivement ce qu'il y a dans un fichier CSS séparé, c'est un autre bordel.

Reply

Marsh Posté le 14-05-2009 à 14:16:33    

Le offsetWidth et offsetHeight fonctionnent bien effectivement donc c'est déja pas mal, meme si c'est pas standard du moment que ca fonctionne sous safari ca me va :)
 
Merci a tous  ;)

Reply

Marsh Posté le 14-05-2009 à 14:16:33   

Reply

Marsh Posté le 14-05-2009 à 21:40:15    

Anéfé... c'est pas bête...  
 
Pardon je vais mettre mon pare-feu gratuit du ministère de la culture...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed