Deux thèmes en css et html

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. Contributeur
    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. ♣
    1. 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.
      1. Contributeur
        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. ♣
        1. 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 !