Aller au contenu

plusieurs CSS


skale

Sujets conseillés

bonjour,

pour un nouveau site, je suis en train de développer différentes feuilles de style. La feuille choisie est enregistrée dans un cookie. Malheureusement pendant la navigation sur le site, si la page est en cache du navigateur, c'est la feuille précédente qui est utilisée.

Comment forcer le navigateur a utilisé la feuille de style spécifiée par le cookie ?

Actuellement j'utilise plusieurs fichiers CSS, est-il plus intéréssant de créer le fichier CSS en PHP en spécifiant de ne pas mettre la feuille en cache, pour avoir un fichier unique dans la balise link, ou bien avoir un fichier Css de base et faire différents import ?

Merci,

skale

Lien vers le commentaire
Partager sur d’autres sites

Peut-être trouveras-tu ta réponse sur cet article d'openweb ("présentations alternatives"). Voir notamment les références à la fin de l'article pour plus d'infos sur les style-switchers en eux-mêmes.

Modifié par golog
Lien vers le commentaire
Partager sur d’autres sites

Actuellement j'utilise plusieurs fichiers CSS, est-il plus intéréssant de créer le fichier CSS en PHP en spécifiant de ne pas mettre la feuille en cache, pour avoir un fichier unique dans la balise link, ou bien avoir un fichier Css de base et faire différents import ?

<{POST_SNAPBACK}>

Le problème de ces techniques c'est qu'il n'est plus possible de changer le style par l'interface du navigateur, et c'est bien dommage :(

Pour ma part j'utilise ce changeur de style en javascript, je pense que le javascript est tout à fait adapté à ce côté "dynamique" de changement de style, c'est un petit plus vu qu'il est toujours possible de passer par l'interface normale ;)

Avantage : ça évite ton problème de cache, vu que le cookie est lu au chargement de la page, et non pas lors de son téléchargement :P

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

j'ai suivi un peu tous les liens, et fais des recherches autour des Switchers ! ceux que j'ai trouvé construisent un formulaire de changement de style, si le javascript n'est pas activé il n'y a pas de sélecteur du tout, et je préfère utiliser des liens pour symboliser les différents styles disponibles. Enfin, je me force à lire du javascript, je fais mon petit script et ... ça marche pas.

me voici confronté au problème de la compatibilité du javascript, et cette fois c'est mon navigateur préféré qui me fait défaut, à savoir Opera. :boude:

Voilà une page très intéressante : compatibilité DOM - CSS

et le code javascript qui tue:

if( typeof(document.styleSheets) == 'undefined')
{
   return;
}

sans javascript le problème reste le même.

Avec, ça marche pas pour tous les navigateurs. Et que va-t-il se passer si l'utilisateur modifie le style avec le navigateur, à la page suivante, ou bien les précédentes ? Surtout que parmi les internautes combien connaissent les CSS et savent que sur certains sites ils peuvent modifier la feuille de style employée, à mon avis ils ne sont pas nombreux.

skale

Modifié par skale
Lien vers le commentaire
Partager sur d’autres sites

j'ai suivi un peu tous les liens, et fais des recherches autour des Switchers ! ceux que j'ai trouvé construisent un formulaire de changement de style, si le javascript n'est pas activé il n'y a pas de sélecteur du tout, et je préfère utiliser des liens pour symboliser les différents styles disponibles. Enfin, je me force à lire du javascript, je fais mon petit script et ... ça marche pas.

me voici confronté au problème de la compatibilité du javascript, et cette fois c'est mon navigateur préféré qui me fait défaut, à savoir Opera.  :boude:

Voilà une page très intéressante : compatibilité DOM - CSS

et le code javascript qui tue:

if( typeof(document.styleSheets) == 'undefined')
{
   return;
}

Je n'avais jamais remarqué que ça ne marchait pas dans Opera :blush:

sans javascript le problème reste le même.

Avec, ça marche pas pour tous les navigateurs. Et que va-t-il se passer si l'utilisateur modifie le style avec le navigateur, à la page suivante, ou bien les précédentes ? Surtout que parmi les internautes combien connaissent les CSS et savent que sur certains sites ils peuvent modifier la feuille de style employée, à mon avis ils ne sont pas nombreux.

skale

<{POST_SNAPBACK}>

À la page suivante, comme un cookie a été stocké, il est lu au chargement de la page, et le style précédemment choisi est directement appliqué. Idem sur les pages précédentes, vu que la page est rechargée à ce moment. Donc ça résout ton problème.

Quand le JavaScript est désactivé, il n'y a effectivement rien, mais comme c'est un "plus" que tu propose ce n'est pas grave... enfin c'est à toi de voir l'importance que ça a, si tu ne le vois que comme un "plus" ou si ça doit faire vraiment partie de la page ;) Maintenant c'est vrai que ça ne fonctionne pas dans Opera, et je ne m'en étais jamais rendu compte... mais Opera permet de changer la feuille de style par son interface (même s'il ne s'en souvient pas à la page suivante :huh: )

À part ça plutôt que de te demander combien d'internautes savent qu'ils peuvent modifier la feuille de style, tu peux leur expliquer, ça marche toujours B)

Lien vers le commentaire
Partager sur d’autres sites

Si t'as page est dynamique (PHP, SSI, ...) pourquoi ne pas inclure selectivement un CSS ou un autre ?

<{POST_SNAPBACK}>

si le fichier est inclus, le problème de cache n'est résolu que si le fichier n'est pas mis en cache (header PHP par exemple), ce qui veut dire un téléchargement de la feuille de style à chaque page vue, à la longue, ça peut devenir vite lourd.

Xavier a une autre réponse :

il n'est plus possible de changer le style par l'interface du navigateur, et c'est bien dommage

tant qu'à faire autant spécifier les différentes CSS grâce à la balise link et la valeur d'attribut stylesheet ou alternate stylesheet.

Lien vers le commentaire
Partager sur d’autres sites

  • 9 months later...
si le fichier est inclus, le problème de cache n'est résolu que si le fichier n'est pas mis en cache (header PHP par exemple), ce qui veut dire un téléchargement de la feuille de style à chaque page vue, à la longue, ça peut devenir vite lourd.

Si chacune de tes feuilles de style a un nom différent, ça ne devrait pas poser de souci.

Edit : si je me mets à répondre aux sujets que je trouve après une recherche moteur (réflexe), je vais remonter de vieux dossiers ...

Modifié par captain_torche
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...