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 ?
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
-
on appelle ça un style switcher
https://www.alsacreations.com/tuto/lire/587-Faire-un-Style-switcher-changement-d-habillage-en-PHP.html -
ContributeurSalut
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. ♣ -
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.
-
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. ♣ -
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 !