28173 sujets

CSS et mise en forme, CSS3

Bonjour

j'ai découvert récemment une méthode pour créer dynamiquement un fichier CSS pour une page web ; il faut envoyer un entête spécifique avant tout autre caractère.

En PHP :
header("Content-type: txt/css");


En ASP :
Response.ContentType("txt/css")


Ceci me permet notamment de créer des styles à la volée selon les paramètres demandés. En php :
@import url(moncss.php?parametre=valeur)


Du coup je pense qui doit être possible d'adapter la feuille de style au navigateur qui la demande...

1°) Est-ce que les CSS dynamique vous paraissent une bonne idée ?
2°) L'adaptation au navigateur vous semble-t-elle indiquée ?
Bonjour,
behess a écrit :
1°) Est-ce que les CSS dynamique vous paraissent une bonne idée ?

Il ne me semble pas, car on perd un grand avantage des CSS : la mise en cache d'une feuille de style.
behess a écrit :
2°) L'adaptation au navigateur vous semble-t-elle indiquée ?

Les versions spécifiques à chaque navigateur et les détections n'ont jamais été une bonne idée à mon avis : c'est très peu fiable, ça demande beaucoup de travail, et ça ne va pas du tout dans le sens des standards.

Il vaut mieux se limiter aux commentaires conditionnels pour insérer quelques corrections pour IE, ça me paraît déjà bien suffisant.
behess a écrit :
1°) Est-ce que les CSS dynamique vous paraissent une bonne idée ?

Dans l'absolu, c'est intéressant. On peut aussi faire des feuilles de style dynamiques mais en utilisant toujours la même feuille de style, au sein de laquelle on peut faire varier certains éléments via des variables. Le but étant alors de pouvoir déclarer des couleurs génériques pour une charte graphique, par exemple.

Pour la mise en cache : il me semble que le fichier correspondant à moncss.php?parametre=valeur1 sera mise en cache... tant qu'un même navigateur n'utilise pas plusieurs paramètres de manière aléatoire, ça ne devrait pas poser de problème (à confirmer).

behess a écrit :
2°) L'adaptation au navigateur vous semble-t-elle indiquée ?

Mêmes réserves que pierre6020 sur ce sujet. Ça me semble être beaucoup de travail (peu fiable) pour pas grand chose.
Une feuille de style standard et une liste de correctifs pour IE windows (via les commentaires conditionnels) suffira dans la plupart des cas.
J'ai bien compris vos objections et vos conseils. Smiley biggrin

Donc, si j'ai plusieurs partie d'un site dont seules les couleurs de éléments graphiques changent, il vaut mieux, selon vous, dupliquer une page quasi à l'identique pour chaque section plutôt que faire varier le même CSS à l'aide de paramètres pour les couleurs ? Smiley murf

Le cache n'enregistre-t-il pas les pages avec l'url complet (c'est à dire avec les paramètres). Si les paramètres sont identiques pour chaque section, cela revient à avoir un fichier CSS pour chaque section, non ? Smiley sweatdrop
Modifié par behess (04 Oct 2006 - 00:12)
clb56 a écrit :


C'est quoi les zones d'un site ???

Je ne connais pas ce concept.


=des parties ou des sections...

C'est à dire des contenus thèmatiques différents sur le même site.
behess a écrit :


=des parties ou des sections...

C'est à dire des contenus thèmatiques différents sur le même site.


Mais pas dans un même document ?

Tu devrais être plus précis. De quoi s'agit il exactement ?
Modifié par clb56 (04 Oct 2006 - 00:31)
behess a écrit :
Donc, si j'ai plusieurs partie d'un site dont seules les couleurs de éléments graphiques changent, il vaut mieux, selon vous, dupliquer une page quasi à l'identique pour chaque section plutôt que faire varier le même CSS à l'aide de paramètres pour les couleurs ? Smiley murf

Pour ma part, et sauf besoins particuliers, je conseillerais quelque chose de plus simple.

<!-- Première section du site -->
<body class="accueil">

<!-- Deuxième section du site -->
<body class="information">

Et en CSS :
.accueil div#page {background: green;}
.information div#page {background: blue;}


Il y a en fait pas mal de moyens de différencier les styles appliquées pour différentes parties (groupes de pages) d'un site. On peut aussi avoir recours à une feuille de style globale et des feuilles de style secondaires, appelées via l'élément link (plusieurs link à la suite) ou avec des requêtes @media dans une feuille de style globale, etc...

Une solution intéressante, par exemple, serait d'avoir un seul lien link vers une feuille de style « répartitrice », appelée par exemple global.php, à laquelle on passe des paramètres en GET. Ensuite, dans cette feuille de style (ou plutôt dans ce script PHP qui génère une feuille de style), suivant les paramètres GET récupérés, on crée des directives @media qui pointent vers les différentes feuilles de style à utiliser.

Enfin, c'est juste une idée comme ça. On peut faire la même chose directement dans l'élément style de la page web, etc.

behess a écrit :
Le cache n'enregistre-t-il pas les pages avec l'url complet (c'est à dire avec les paramètres). Si les paramètres sont identiques pour chaque section, cela revient à avoir un fichier CSS pour chaque section, non ? Smiley sweatdrop

Il me semble que oui.
Merci pour tes conseils Smiley smile

Donc à priori : pas de problème technique (avec le cache) ni avec le principe même (standards ou autre).

C'est pour un module "menu". Le problème c'est que j'ai de nombreux éléments à diversifier (par la couleur, pour différencier les sections du site).

Je veux créer un module réutilisable. Comme les paramètres de l'url différencient un élément du cache d'un autre, je préfère donc n'avoir qu'un seul fichier, qui me servira pour générer tous les types de documents du module ; c'est plus facile à réutiliser et à maintenir.

J'utiliserais un paramètre get=js ou get=css ou get=html pour obtenir les différents morceaux et d'autres paramètres pour inclure les couleurs par exemple (qui resteront à priori les même pour chaque groupe de pages).