Mise à jour dynamique dans un css externe

gianni7033 Messages postés 3 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006 - 28 déc. 2006 à 01:30
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 29 déc. 2006 à 05:43
bonjour,

voila en résumé je voudrais que l'utilisateur de mon site puisse changer la couleur d'arrière plan (ok rien de bien compliqué jusque là...) le problème c'est que j'utilise un css externe et bien entendu si l'utilisateur met l'arrière plan en rouge, lorsqu'il ira dans une autre page du site, la couleur d'arrière plan devra encore etre rouge.

Dans mes pages web j'ai mis mon css

<head>
....
<LINK href="theme/Master.css" rel="stylesheet" type="text/css">
...
</head>

Dans Master.css

BODY
{
 BACKGROUND-COLOR:black;
}

voilà je voudrais donc modifier l'arrière plan en fesant appel à une liste déroulante (fesant appel à une fonction javascript pour modifier la couleur d'arrière plan)
après je vais surement faire un genre avec la couleur de mes polices ou autre mais une fois que j'aurais compris le principe avec mon example ici y aura plus de soucis

6 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 déc. 2006 à 11:00
Bonjour,

   on ne modifiera pas le fichier "Master.css".

   par contre document.body.style.backgroundColorpar exemple, oui,
      sur le onchange du select.

    pour passer gérer cette couleur de fond entre les pages, mémoriser
      le choix dans un cookie et le réutiliser au onload dans les autres 
      pages, là aussi, par exemple.
   
<hr />
                     Cordialement             Bul          [mon Site]       [M'écrire]
<hr />
0
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
28 déc. 2006 à 13:40
Le cookie me semble la meilleure solution à moi aussi
Pourquoi notre PC fait-il toujours ce qu'on lui dit ... et pas ce qu'on veut ???
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
28 déc. 2006 à 14:47
salut Fremy...,

   il y a d'autres solutions. Il ne faut pas oublier
      qu'un certain  nombre de personnes les refusent, les cookies.
      Mais il parait aussi, que d'aucuns interdisent le javascript... alors !?!

<hr />
                     Cordialement          Bul       [mon Site]    [M'écrire]
<hr />
0
gianni7033 Messages postés 3 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006
28 déc. 2006 à 15:26
merci de m'avoir répondu aussi rapidement.
J'ai pas encore essayer avec les cookies je vais tester ce soir

J'avais trouvé par hasard une source pour modifier un style interne mais le prob c ke g une erreur à la ligne là :         tab = document.all ? document.styleSheets[index].rules : document.styleSheets[index].cssRules;

voici le code

<style type='text/css'>
#mondiv{
   background: red;
}
</style>
<script type='text/javascript'>
   function getRuleIndex(name){
      var cmpt = 0;
      var index = 0;
      var tab = null;
      var good = false;



      while(index<document.styleSheets.length && !good){
         tab = document.all ? document.styleSheets[index].rules : document.styleSheets[index].cssRules;



         while(cmpt<tab.length && !good){
            if(tab[cmpt].selectorText.toLowerCase() != name)
               good = true;
            cmpt++;
         }



         index++;
      }



      return {sheetIndex:index-1,ruleIndex:cmpt-1};
   }



   function changeRule(selector,cssText){
      infos = getRuleIndex(selector);
      sheet = document.styleSheets[infos.sheetIndex];
      if(document.all){
         sheet.removeRule(infos.ruleIndex);
         sheet.addRule(selector,cssText);
      }
      else{
         sheet.deleteRule(infos.ruleIndex);
         sheet.insertRule(selector+"{"+cssText+"}", sheet.cssRules.length);
      }
   }
</script>

bla bla
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
28 déc. 2006 à 16:04
Bien le bonjour, en fait ça marche bien le script que tu as trouvé mais cela doit impliquer le fait que le style est définit dans la page HTML et pas dans un fichier externe ( ce qui doit être ton cas je présume ).
J'avais commencé à ébaucher une classe pour gerer les feuilles de style, mais je ne la retrouve plus.
Je jeterais un coup d'oeil chez moi ce soir.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 déc. 2006 à 05:43
   s'il ne faut que modifier la couleur du fond :
         document.body.style.backgroundColor=couleur voulue;
<hr />
            Cordialement          Bul          [mon Site]    [M'écrire]
<hr />
0
Rejoignez-nous