Deux thèmes en css et html

Onze -  
 Onze -
Bonjour,
J'aimerais savoir si il était possible de créer deux thèmes, en css et html, qui pourrait être choisis par un visiteur du site.
Merci de m'aider dans ma requête

Ps: ce serait peut-être du javascript qui sait ?

5 réponses

  1. RAD ZONE Messages postés 5362 Statut Contributeur 1 360
     
    Salut

    pour le html il faut juste le rediriger vers une autre page html ?

    mais pour un changement de style CSS oui ca s appelle un switch css !

    voila un exemple de switcher css(avec cookie )

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  
      <head>  
        <title>  
          RAD ZONE Webcreation  
        </title>  
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />  
    
        <!-- DEBUT JS CSS SWITCHER -->  
    
        <script type="text/javascript">  
        /*<![CDATA[*/  
         function setActiveStyleSheet(title) {  
      var i, a, main;  
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {  
          a.disabled = true;  
          if(a.getAttribute("title") == title) a.disabled = false;  
        }  
      }  
    }  
    
    function getActiveStyleSheet() {  
      var i, a;  
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
        if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");  
      }  
      return null;  
    }  
    
    function getPreferredStyleSheet() {  
      var i, a;  
      for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {  
        if(a.getAttribute("rel").indexOf("style") != -1  
           && a.getAttribute("rel").indexOf("alt") == -1  
           && a.getAttribute("title")  
           ) return a.getAttribute("title");  
      }  
      return null;  
    }  
    
    function createCookie(name,value,days) {  
      if (days) {  
        var date = new Date();  
        date.setTime(date.getTime()+(days*24*60*60*1000));  
        var expires = "; expires="+date.toGMTString();  
      }  
      else expires = "";  
      document.cookie = name+"="+value+expires+"; path=/";  
    }  
    
    function readCookie(name) {  
      var nameEQ = name + "=";  
      var ca = document.cookie.split(';');  
      for(var i=0;i < ca.length;i++) {  
        var c = ca[i];  
        while (c.charAt(0)==' ') c = c.substring(1,c.length);  
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);  
      }  
      return null;  
    }  
    
    window.onload = function(e) {  
      var cookie = readCookie("style");  
      var title = cookie ? cookie : getPreferredStyleSheet();  
      setActiveStyleSheet(title);  
    }  
    
    window.onunload = function(e) {  
      var title = getActiveStyleSheet();  
      createCookie("style", title, 365);  
    }  
    
    var cookie = readCookie("style");  
    var title = cookie ? cookie : getPreferredStyleSheet();  
    setActiveStyleSheet(title);  
    
        /*]]>*/  
        </script>  
         <!-- FIN JS CSS SWITCHER -->  
    
           <!-- DEBUT LIENS CSS SWITCHER -->  
        <link rel="stylesheet" href="bleu.css" type="text/css" title="default" />  
        <link rel="alternate stylesheet" type="text/css" href="rouge.css" title="alternative" />  
       <link rel="alternate stylesheet" type="text/css" href="vert.css" title="alternative2" />  
            <!-- FIN CSS LIENS SWITCHER -->  
    
    <style type="text/css">  
    /*<![CDATA[*/  
        div.c3 {height: 30px; position: relative}  
        a.c1 {color: #FF6600; margin: 10px}  
        /*]]>*/  
        </style>  
      </head>  
      <body>  
    
      <!--  DEBUT SWITCHER -->  
        <div class="c3">  
          <a href="#" onclick="setActiveStyleSheet('alternative');return false;" class="c1">ROUGE</a>  
          <a href="#" onclick="setActiveStyleSheet('alternative2');return false;" class="c1">VERT</a>  
          <a href="#" onclick="setActiveStyleSheet('default');return false;" class="c1">BLEU</a>  
          </div>  
          <!-- FIN SWITCHER -->  
    
        <div id="test">  
          COULEUR CHANGEANTE !  
        </div>  
      </body>  
    </html>  
    


    et les 3 CSS

    BLEU
    bleu.css

    body{  
      background-color: #535353;  
    }  
    
    #test{  
      height: 400px;  
      width: 200px;  
      margin: auto;  
      margin-top: 30px;  
      background-color: #0066FF;  
      border: 3px solid #FFFFFF;  
      font-family: Georgia;  
    }


    ROUGE
    rouge.css

    body{  
      background-color: #535353;  
    }  
    
    #test{  
      height: 200px;  
      width: 400px;  
      margin: auto;  
      margin-top: 30px;  
      background-color: #FF0000;  
      font-family: Palatino Linotype;  
     font-size: 30px;  
    }


    VERT
    vert.css

    body{  
      background-color: #535353;  
    }  
    
    #test{  
      height: 200px;  
      width: 400px;  
      margin: auto;  
      margin-top: 30px;  
      background-color: #00CC00;  
      font-family: Palatino Linotype;  
     font-size: 20px;  
    }


    tu mettra le js en fichier externe bien sur !!

    a+

    ♣ La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣
    0
  2. Onze
     
    Salut, je n'arrive toujours pas à le faire, par ce que je pense qu'il prend toujours en compte le css default, or j'aimerais qu'il en tienne plus compte.
    0
  3. RAD ZONE Messages postés 5362 Statut Contributeur 1 360
     
    Salut, je n'arrive toujours pas à le faire, par ce que je pense qu'il prend toujours en compte le css default


    c est que tu a fais une erreur en recopiant mon code !!!
    essaye en le faisant avec les codes que j ai mis au post precedent tu verras :-))

    ou que tu as mal config le switcher en fonction de tes css !

    dans mon exemple a 3 CSS !
    lien CSS

     <link rel="stylesheet" href="bleu.css" type="text/css" title="default" />  
        
        <link rel="alternate stylesheet" type="text/css" href="rouge.css" title="alternative" />  
        
       <link rel="alternate stylesheet" type="text/css" href="vert.css" title="alternative2" /> 


    Code Switcher html

    <a href="#" onclick="setActiveStyleSheet('alternative');return false;" class="c1">ROUGE</a>  
        
          <a href="#" onclick="setActiveStyleSheet('alternative2');return false;" class="c1">VERT</a>  
        
          <a href="#" onclick="setActiveStyleSheet('default');return false;" class="c1">BLEU</a>


    a+


    ♣ La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Onze
     
    Salut,
    Voilà je t'explique ce que je veux vraiment clair.
    J'ai un site http://onzze.fr sous tumblr, j'aimerais qu'en cliquant sur un lien le template de ce blog s'affiche http://jfjsojgoosqjgdsvdsds.tumblr.com/ avec un stylesheet comme tu as dis en haut, mais j'aimerais en même temps qu'avec un java, j'arrive à cacher un div et en affiche un autre, comment faire ? En esperant etre clair !
    0