J'aimerais savoir comment est-il possible de donner le choix au
lecteur entre deux feuilles de style. Bien sur je peux mettre un lien
"Fond noir" ou "Fond blanc" mais cela oblige à avoir deux fois la même
page avec juste les feuilles de style (externes) qui changent. Pour la
maintenance ce n'est pas top...
Je crois avoir vu quelque chose là dessus mais je sais plus où ?
Merci et bonne soirée.
Guy
par quelle m�thode ?
PHP ?
Javascript ? (j'ai en stock et n'ai plus la provenance)
sinon il y a les FdS alternatives, mais je ne vois pas beaucoup de
brouteurs qui sachent les exploiter...
(iCab par exemple, et encore ? pas certain qu'il ne faille � chaque page
re-pr�ciser laquelle on aime)
google : style switcher
--
sm
Un petit script PHP ou Javascript fera l'affaire...
Exemple en php :
---------------------------------------------------------
<?php // au d�but
$moi=$_SERVER['PHP_SELF'] ; // nom de la page
$set=$_GET['set'] ;
if($set!=2 && $set!=1) /* ici deux choix possibles */
{
$set=$_COOKIE['set'] ;
if ($set!=2) $set=1 ;
}
?>
<html>
<head>
<!-- ........ -->
<link rel="<?php if ($set!=1) echo 'alternate ' ?>stylesheet" type="text/css" media="screen" href="feuille1.css" title="normal">
<link rel="<?php if ($set!=2) echo 'alternate ' ?>stylesheet" type="text/css" media="screen" href="feuille2.css" title="alternatif">
<!-- ........ -->
</head>
<body>
<!-- ........ -->
<form action="<?php echo $moi ?>" method="get" id="switcher">
Choisir un habillage :
<select id="set" name="set">
<option value="1" <?php if ($set==1) echo 'selected="selected" ' ?>>Normal</option>
<option value="2" <?php if ($set==2) echo 'selected="selected" ' ?>>Alternatif</option>
</select>
<input type="submit" value="Ok"> <small>(ce choix n�influera aucunement sur l'impression)</small>
</form>
--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Et m�me sans PHP (ou javascript)...
Avec:
<link rel="stylesheet" type="text/css" media="screen" href="feuille1.css" title="normal">
<link rel="alternate stylesheet" type="text/css" media="screen" href="feuille2.css" title="alternatif">
Dans Firefox ou Opera, le menu "affichage/Style" permet de choisir la feuille de style.
Je préfèrerais en JS si c'est possible ?
Je ne suis pas certain que les utilisateurs connaissent l'existence de
l'option d'affichage que tu cites...
Guy
Oi, mais l�, �a ne fonctionne que pour "cette" page
(et � condition qu'elle ait le form kivabien)
non ?
--
sm
En JS il suffit de faire changer entre les diff锟絩entes FdS
<link rel="stylesheet" type="text/css" href="/css/styles.css"
title="Defaut">
<link rel="alternate stylesheet" type="text/css" href="/css/bleu.css"
title="Bleu">
<link rel="alternate stylesheet" type="text/css" href="/css/jaune.css"
title="Jaune">
<script type="text/javascript">
function setActiveStyleSheet(title) {
var i, a;
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;
}
}
}
</script>
</head><body>
<p>Changer de style :
<br>
<a href="#" onclick="setActiveStyleSheet('Defaut'); return false;">
normal</a>
<br>
<a href="#" onclick="setActiveStyleSheet('Bleu'); return false;"> bleu</a>
<br><a href="#" onclick="setActiveStyleSheet('Jaune'); return
false;"> jaune</a>
</p>
Mais toujours pas pour toutes les pages
(il faudra alors se servir des cookies)
--
sm
Cela me plait bien ta solution car ce sera du page par page.
Merci !
Guy
>> En JS il suffit de faire changer entre les diff�rentes FdS
>
> Cela me plait bien ta solution car ce sera du page par page.
>
> Merci !
De rien,
une once de Google t'aurait donn� la m�me exacte fonction
(je l'ai vue apr�s) comme ici :
<http://my.opera.com/Groumphy/blog/index.dml/tag/styleswitcher>
(il a d� copier la m�me source que moi, � croire ?)
Il est pr�f�rable aussi d'essayer d'avoir une FdS de base
et que celles 'bleu' et 'jaune' et peut-�tre 'defaut'
ne contiennent que le minima personnalisant la FdS principale
(afin de minimiser les chargements), �viter les redites de l'une � l'autre.
--
sm
>> Un petit script PHP ou Javascript fera l'affaire...
>>
>> Exemple en php :
>> ---------------------------------------------------------
>> <?php // au d�but
>> $moi=$_SERVER['PHP_SELF'] ; // nom de la page
>
> Oi, mais l�, �a ne fonctionne que pour "cette" page
> (et � condition qu'elle ait le form kivabien)
> non ?
Ben, le FORM il est plus loin... dans la m�me page.
J'avoue avoir copi� d'une de mes pages...
Oui, oui, j'avais vu ;-)
> J'avoue avoir copi� d'une de mes pages...
As I did pour mon exemple en JS (le copi�-coll� c'est qd mme + s�r)
Ma question porte plus vers le d�veloppement : toutes pages
En JS on s'appuie sur les cookies pour que chaque nouvelle page charg�e
puisse connaitre les pr�f�rences de l'utilisateur,
en PHP, j'imagine qu'on doit pouvoir faire de m�me
ou mieux : via sessions ? <-- l� est mon interrogation.
--
sm
>> Ben, le FORM il est plus loin... dans la m�me page.
>
> Oui, oui, j'avais vu ;-)
>
>> J'avoue avoir copi� d'une de mes pages...
>
> As I did pour mon exemple en JS (le copi�-coll� c'est qd mme + s�r)
>
> Ma question porte plus vers le d�veloppement : toutes pages
>
> En JS on s'appuie sur les cookies pour que chaque nouvelle page charg�e
> puisse connaitre les pr�f�rences de l'utilisateur,
> en PHP, j'imagine qu'on doit pouvoir faire de m�me
> ou mieux : via sessions ? <-- l� est mon interrogation.
J'ai fait via cookies...
> Bonsoir,
>
> J'aimerais savoir comment est-il possible de donner le choix au
> lecteur entre deux feuilles de style. Bien sur je peux mettre un lien
> "Fond noir" ou "Fond blanc" mais cela oblige � avoir deux fois la m�me
> page avec juste les feuilles de style (externes) qui changent. Pour la
> maintenance ce n'est pas top...
>
> Je crois avoir vu quelque chose l� dessus mais je sais plus o� ?
>
> Merci et bonne soir�e.
>
> Guy
rien de plus facile.
regarde la :
http://www.codelifter.com/main/javascript/changestylesPop.html
http://www.codelifter.com/main/javascript/changestyles.html
--
klp
Merci.
J'ai une solution donnée ici en JS :