Je ne suis pas convaincu de l'utilité du "style switcher" en soi.
Pour plusieurs raisons :
- un site Web cherche à avoir une mise en page, pas plusieurs
Tout à fait d'accord. Le but d'intégrer un "sélecteur de style" n'est pas
tant d'offrir aux visiteurs des styles différents (ceci n'étant qu'une
option possible), mais plutôt de faciliter la vie au concepteur:
1. En pouvant gérer les feuilles de styles de TOUS les squelettes d'un site
à partir d'un seul fichier (donc inclusion).
2. De permettre, en phase d'expérimentation ou de développement au
concepteur de basculer à un autre jeu de feuilles de styles, sans
compromettre le site existant et sans nécessairement offrir aux visiteurs la
possibilité de les choisir. Pour activer le tout, on n'aurait qu'à changer
"Alternate Stylesheet" par "Stylesheet" à un seul endroit.
3. On pourrait facilement faire basculer les feuilles de styles
contextuellement (par BOUCLE) selon le secteur ou la rubrique, sans devoir
se taper un nouveau squelette (pour simplement changer la palette de
couleur, par ecxemple). Pour un périodique en ligne, on pourrait même faire
basculer par BOUCLE la palette de couleur basé sur une date de sortie.
4. Quant aux options pour les visiteurs (si, et seulement on désire utiliser
cette option), ça pourrait se limiter à fort peu de chose, du genre: voir
avant d'imprimer, typo +, typo -... Si on en veut plus tout le mécanisme
serait en place.
- même avec une feuille de style, le HTML n'est pas indépendant de
la mise en page (imbrication et ordre des <div> - très important
pour les "float" -, etc.) ; faire plusieurs mises en page très différentes
pour le même HTML, c'est pas évident et ça limite les possibilités
pour un vrai site, il est difficile
de maintenir plusieurs mises en pages distinctes qui collent toutes à la
structure du site.
C'est là effectivement le dilemme de tout le projet. Aucun jeu unique de
squelette couplé à un réservoir de feuilles de styles ne peut convenir à
toutes les situations. Notamment, comme tu le signales, le flux
d'information doit être adaptée à la sémantique du site.
Mais, une fois cette sémantique établie et le code HTML qui la structure
développé (donc le jeu de squelette adapté), la constitution d'un réservoir
de feuilles de styles pour ce jeu de squelettes pourrait s'avérer
intéressant:
À la base, SPIP impose déjà une certaine sémantique, souple, mais présente
tout de même: ce n'est pas un portail de commerce en ligne.
Plusieurs types de sites partagent sensiblement la même sémantique et
souvent même, la même taxonomie: ONG internationales multilingues,
périodiques en lignes, sites de militants ou d'activistes, sites
pédagogiques, sites catalogues ou bibliographiques, carnets personnels (type
weblog), "open publishing", etc... Il y aurait toujours des adaptations
nécessaires, mais au moins ça fournirait à plusieurs un bassin pour partir
avec diverses options de présentation.
- une mise en page doit être adaptée à la structure du site ; pour
Zen Garden ce n'est pas compliqué, y a trois textes qui se battent
en duel (et tu vois que déjà certaines CSS utilisent des images à la place de
certains titres de "rubriques"...) ;
Bonne remarque. Mais ce site est un exercice de style. En passant, les
images sont tout à fait optionnelles, le texte et là dans le HTML, caché par
la feuille de style, si tu vires la feuille de style, il apparaît soudain.
Je pense qu'il serait carrément plus utile de faire différents jeux
de feuilles de style, ou de squelettes, indépendant(e)s.
L'un n'empêche pas l'autre. En fait, les ccs (et les quelques images
associées) pourraient se constituer en branches d'un même jeu de squelettes.
Je songe ici, par exemple, à se qui se développe autour d'EVA et SPIP-EDU.
Mais bon, c'est assez, je vais m'en coder et complèter tout au moins la
démonstration de la chose.
Et merci pour les remarques, ça replace les choses en perspective et ça
pointe très justement les limites d'un tel projet.
En attendant, si vous désirez suivre le projet:
http://speca.lautre.net
http://edu.ca.edu
Le même jeu de squelettes et des feuilles de styles sur 2 sites différents
(et 2 serveurs différents). Un seul mot dans un seul fichier est différent:
entete.html ainsi que 2 images différentes en haut, mais portant le même nom
sur les 2 sites. En fait, je songe à placer les feuilles de styles et les
images des gabarits sur un troisième serveur, question d'illustrer la
souplesse de la chose. Le design est moche et les css mal structuré et
redondant, mais ça marche et c'est en développement. Après ça le tutoriel.
La clef de l'affaire repose sur le remplacement dans les squelette de base
des deux lignes </head> et <body> par <INCLURE (entete.php3)> et 4 fichiers
- entete.php3 - n'a rien de particulier, c'est un simple appel de squelette
- entete-dist.php3 - il reprend seulement les lignes que nous avons enlevé
des squelettes, au cas où...
- entete.html - c'est là en fait que tout se passe, c'est aussi en
développement. En fait, j'aimerais bien éviter d'ajouter une division
d'entête (après le <BODY> et m"en tenir aux squelettes de base. Ou
carrément, comme le suggérait Fil, développer un nouveau jeu de squelettes.
- /js/styleswitcher.js - c'est le moteur de bascule des feuilles de style,
on n'y touche pas; j'en ai choisi un qui ne fonctionne pas dans Netscape 4
et c'est bien ainsi...
André Vincent