28173 sujets

CSS et mise en forme, CSS3

Bonjour,

J'aimerais savoir si c'est possible de modifier les propriétés de ma feuille de style à la volée afin de modifier une classe et que ces changements soient répercutés sur tous mes éléments utilisant cette classe.
Si oui, je veux bien savoir comment faire également. Smiley cligne

Merci.
Il me semble qu'il existe des fonctions de type getElementByClass. Elles sont un peu complexes, mais il doit y avoir moyen de récupérer un script quelque part.

Ensuite, tu appliques tes propriétés d'affichage grâce à cette fonction.
Le tout dans un fichier .js externe, appelé dans le head via la balise script.
salut à tous

oui ca existe, je m'en sert pour corriger une petite différence entre IE et FF :

function initnscadre() {
  if (dom && !ie4) {
	  var regles=new Array();
	  if (document.styleSheets[0].cssRules) { 
	  	  regles=document.styleSheets[0].cssRules; }
	  else { return; }
	  regles[0].style.width = "320px";
	  // pour IE width = 326px pour obtenir le meme resultat
  }
} 


ceci dans le cas ou tu n'as qu'une feuille de style, et je crois que ce code ne marche pas sous IE (ce qui ne me gene pas puisque de toute facons il est destiné à FF/NS)
Il me semble que pour IE, c'est document.styleSheets[0].rules

plus de détails sur :
http://developpeur.journaldunet.com/tutoriel/dht/020527jscript_css.shtml
http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/stylesheets.asp
Merci à vous 2... Mais j'ai fini par contourner le problème (au prix d'un rechargement de page.) Smiley ravi

Néanmoins, je garde ta solution sous le coude en cas de client mécontent. Smiley cligne