28111 sujets

CSS et mise en forme, CSS3

Bonjour,

Nouvel inscrit sur ce site, plus graphiste que technicien, je cherche à résoudre cette question :
Je réalise un site avec plusieurs variantes css ( switcher "alternate stylesheet" ).
Il s'agit d'une seule page xhtml, seuls les css changent son apparence.
Est-il possible, et comment, à partir d'une image de créer un lien url changeant qui pointerait vers la css suivante de cette façon : à partir de la variante 1, aller vers la variante 2 par un clic, et ainsi de suite, et à la dernière variante revenir en boucle à la première.

Autre question : à partir d'une image animée ( Image Ready ) est-il possible d'affecter un lien changeant ( toujours les variantes css ) à chacun des calques, ou états de l'image ?

D'avance merci pour vos contributions et réponses.
Modifié par designer1959 (06 Jul 2010 - 15:55)
Merci pour l'indication du tutoriel que j'avais bien repéré et consulté.
Sauf erreur de ma part, il ne répond pas à ma question, qui ne concerne pas en elle-même la création de feuilles de style alternatives que je sais faire, mais au fait de pouvoir, à partir d'un lien unique sur la page ( en l'occurrence à partir d'une image ) passer de style en style, pour revenir à la fin au premier, sans avoir recours à une liste de type " 1, 2, 3 " comme c'est généralement le cas avec les feuilles de style alternatives.

Si la réponse " passer en variable le style désiré " concerne bien ma question, je suis hélas bien incapable de rédiger ce code moi-même !

Encore merci.
Le tuto est le bon. Il te suffit de remplacer la liste déroulante par un lien du style www.monsite.com/index.php?changestyle=on et de faire quelque chose comme :
// Liste des styles autorisés
$styles = array('defaut', 'bleu', 'orange');
// Récupération de la valeur du cookie 'style' s'il existe ou 0 par défaut
$style_en_cours = !empty($_COOKIE['style']) ? intval($_COOKIE['style']) : 0;
// Demande de changement de style ?
$changestyle = isset($_GET['changestyle']) ? true : false;
// Si oui on incrémente
if($changestyle) $style_en_cours++;
// On boucle ?
if($style_en_cours >= count($styles)) $style_en_cours = 0;
// Ecriture du cookie
$expire = 365*24*3600;  // on définit la dure du cookie, (ici 1 an)
setcookie("style", $style_en_cours, time()+$expire, '/');
echo '<p>style en cours : '.$styles[$style_en_cours].'</p>';
echo '<p><a href="?changestyle=on">Changer de style</a></p>';
Bien sûr cela demande quelques bases en PHP. Smiley cligne
Merci Heyoan de la piste de travail…
Malheureusement, je ne parviens pas à grand chose.
L'adresse qui, dans mon cas, remplace la liste déroulante, doit-elle figurer à la fin des lignes que tu m'envoies ?
Le " quelque chose " que tu m'indique remplace-t-il le fichier "styleswitcher.inc.php"
ou doit-il être dans la page concernée ? J'ai simplement ajouté des balises php et voici l'ensemble :

<? php
// Liste des styles autorises
fonction $styles =array('variante1', 'variante2', 'variante3');
// Recuperation de la valeur du cookie 'style' s'il existe ou 0 par defaut
$style_en_cours = !empty($_COOKIE['style']) ? intval($_COOKIE['style']) : 0;
// Demande de changement de style ?
$changestyle = isset($_GET['changestyle']) ? true : false;
// Si oui on incr?mente
if($changestyle) $style_en_cours++;
// On boucle ?
if($style_en_cours >= count($styles)) $style_en_cours = 0;
// Ecriture du cookie
$expire = 365*24*3600; // on d?finit la dure du cookie, (ici 1 an)
setcookie("style", $style_en_cours, time()+$expire, '/');
echo '<p>style en cours : '.$styles[$style_en_cours].'</p>';
echo '<p><a href="http://www.delaurentb.com/NOVO/PHP/index.php?changestyle=on"><img src="../alternatif.gif" alt="">;</a>' ?>

Il doit manquer quelque chose, car je reçois un message d'erreur de type " variable inattendue ".

Encore Merci…
Nouvelles recherches et essais mais je suis toujours au point mort.
Cette page-ci reprend avec succès le principe décrit par le tutoriel : http://www.delaurentb.com/NOVO/PHP/test3.php

Mais lorsque sur cette page-ci : http://www.delaurentb.com/NOVO/PHP/test4.php
je tente de remplacer la liste déroulante par un lien de type <a href="?changestyle=on"> le message renvoyé par PHP indique un bug avec le header.

Je ne souhaite pas monopoliser le forum autour de cette question mais en comprendre les enjeux !

Je fais mes premiers pas en PHP et vous aurez compris qu'ils sont un peu laborieux ! Pourtant, je suppose qu'il manque peu de chose pour y arriver.

Cordialement
Modifié par designer1959 (15 Jul 2010 - 18:35)
Si tu veux, j'ai créé un système de styleswitcher, et tu peux en voir le résultat sur cette page de mon site.

Le principe est simple.

Une page changer_skin.php?theme=ND qui est appelée depuis la page skins.php qui crée un cookie avec la valeur passée en paramètre.
Ensuite, cette page redirige vers la page skin. Si tu as un problème de header php, c'est que quelque chose est envoyé au navigateur avant. Les cookies, les redirections PHP doivent être faits avant l'envoi de code au navigateur (l'envoi de code envoie des header, et PHP ne comprend pas qu'on en renvoie derrière : d'où le "header already sent").


Et j'ai une page qui choisit d'afficher le skin selon la valeur du cookie, exemple :


function renvoi_rep(){
if (isset($_COOKIE["skins"])){
   // choix du thème
   switch ($_COOKIE["skins"])
     { 
       case 'ND' : $rep='ND';
  	                    break;
       case 'iND' : $rep='iND';
  	                    break;
       case 'ND_egypt' : $rep='ND_egypt2';
  	                    break;
      // etc, je te passe les 23 skins
                        }
                       break;
       default : $rep='ND_egypt2';
     }// fin switch
   }
   // si pas de cookie, alors thème par defaut
   else {$rep='ND_egypt2';}
return $rep;
}// fin fonction
// si qqu'un essaie une autre valeur, ça mettra le skin par défaut

$dir=renvoi_rep();


echo ' <link rel="stylesheet" href="/style/'.$dir.'/'.$dir.'.css" media="screen, projection" title="defaut" />'."\n";



En espérant que ça t'aide !

EDIT : je t'invite à lire : http://openweb.eu.org/articles/presentations_alternatives
Modifié par Nico3333fr (03 Oct 2010 - 09:38)
Merci beaucoup Nico pour ta réponse, et la documentation proposée.
J'ai déjà visité ton site, dans le cadre du concours, et je l'ai d'ailleurs commenté. J'ai lu la page du W3c également, et pas mal de documentation sur le sujet, mais à ce qu'il me semble, peut-être une chose m'échappe-t-elle ?, cet article ainsi que ta mise en place des pages alternatives ne répondent pas pas à ma question.
J'ai en effet déjà réalisé avec succès un site avec des présentations alternatives, sans cookie, juste en css ( façon Zen Garden ).
Cette fois, ce qui me manque est de pouvoir appeler une variante non pas par une liste de propositions ( variante 1, 2, 3, etc. ) mais, à partir d'un lien unique ( texte ou image ) qui, de variante en variante, passerait à la suivante, en boucle.
D'autre part, contrairement à ce que le suffixe de ma page laisse penser, je n'écris pas en php, et malheureusement je m'y débrouille fort mal.

Merci toutefois pour ta contribution.