je sais qu'un peut definir un CssText pour un objet, mais je souhaiterais créer une class dynamiquement puis attribuer des className (ce point ne me derange pas) ...
Version imprimable
je sais qu'un peut definir un CssText pour un objet, mais je souhaiterais créer une class dynamiquement puis attribuer des className (ce point ne me derange pas) ...
tu veux dire une classe dans la feuille de style, pas dans le code html ?
genre faire un truc comme ça entre les balises style ?
si oui, je pense que ça doit pouvoir se gérer avec createTextNode et autres fonctions du DOM...Code:
1
2
3 .test { color:red; }
DOM dans la page HTML, ça doit te permettre d'acceder/de créer une balise style, dans laquelle tu mets ce que tu veux....
avec dom et lastChild AppendChild ...
mais si je veux revenir dessus pour le modifier après en avoir ajouté plusieurs ?
tu ne peux pas faire d'insertion, c'est du séquentiel comme certains fichiers...
il faut faire une copie du contenu, et c'est au moment de recopier, qu'il faudra insérer la dite ligne.
oui :cry:
ça confirme ce que je pensais ...
a moins que
j'explore si c'est du readonly ou pas je crois que l'on peut y acceder et le definir ...Code:
1
2 document.styleSheets[0].rules.style.cssText ou cssRules
j'ai regardé vite fait, mais apparament, il est possible de les modifier :
http://www.quirksmode.org/dom/changess.html
bingo ça fonctionne....
je peux acceder au cssText ... si le css est bien codé il ne me reste plus qu'a faire un split sur le ; comme ça je remplace juste la propriété que je veux dans la class souhaitée ...!!!!
d'après ce que j'ai compris, les propriétés ne sont pas les même pour IE (tiens bizarre) et pour les autres suivant les recommandations... donc attention quand même :wink:
ben j'ai testé sous IE ...
ça fonctionne ...
il suffit de faire
et on n'en parle plus ...Code:
1
2 var LesStyles=document.styleSheets[0]; var LesProps=LesStyles.rules?st.rules:st.cssRules;