[CSS]Centraliser une valeur

Centraliser une valeur [CSS] - HTML/CSS - Programmation

Marsh Posté le 30-04-2009 à 15:09:24    

Bonjour,
 
Je tiens un site web qui possède une couleur prédominante qui peut changer de temps en temps.
Du coup, cette couleur est affectée à divers endroits de chacun de mes fichiers CSS.
 
Quand je veux changer de couleur, je dois me taper tous les fichiers et faire les remplacements nécessaires.
 
Et j'ai ce même "problème" avec d'autres types de valeurs (polices, gras ... etc.).
 
Existe-t'il un moyen de centraliser ces infos quelque-part pour avoir un minimum de manipulations à faire ?
(Est-ce que la notion de déclaration de variable existe par exemple en CSS ? je pourrais affecter ma variable quelque-part une seule fois et l'utiliser ensuite dans les différents fichiers)
 
Merci bien par avance !!  :jap:

Reply

Marsh Posté le 30-04-2009 à 15:09:24   

Reply

Marsh Posté le 30-04-2009 à 15:20:59    

Nan, pas de déclaration de variables [:sadnoir]
 
Tu peux passer par un peu de PHP par exemple pour faire ça. Genre :

Code :
  1. <?php
  2.  
  3. header('Content-Type: text/css');
  4.  
  5. $color = '#f2a5c9';
  6.  
  7. ?>
  8.  
  9. body {
  10.  background: <?php echo $color ?>
  11.  margin: 0;
  12. }
  13.  
  14. #bidule {
  15.  color: <?php echo $color ?>
  16. }

Reply

Marsh Posté le 30-04-2009 à 16:06:07    

J'allais répondre que le serveur web ne passe pas les fichiers CSS par la moulinette PHP, mais finallement, après quelques tests, je me suis rendu compte que je pouvais renommer mes fichiers XXX.css en XXX.css.php, et là en effet ça fonctionne bien.
 
2 problèmes et 1 question se soulèvent alors :
 - Chaque fichier css.php évolue dans son propre environnement (une variable déclarée dans un fichier n'est pas d'office déclarée dans les autres fichiers) : pour ceux que ce post pourrait intéresser, on le résout avec un include;
 - la variable $_GET du fichier php appelant non plus n'est pas passée ...
 - y-a-t'il une contre indication à utiliser ce genre d'appel ?

<head>
 <link rel="stylesheet" media="screen" type="text/css" title="Design" href="css/site.css.php">
</head>


 

Reply

Marsh Posté le 30-04-2009 à 16:07:12    

Et au fait : Merci FlorenG !!!  :sleep:  :whistle:  :sarcastic:


Message édité par mv1 le 30-04-2009 à 16:08:10
Reply

Marsh Posté le 30-04-2009 à 16:08:10    

Aucun problème pour l'appel, le navigateur s'en tape complètement de l'extension. Il regarde juste l'entête HTTP Content-Type (ce que j'ai mis au début).
 
Après pour $_GET c'est normal qu'il n'y a rien, ça passe par une requête HTTP différente, avec l'URL :

Code :
  1. css/site.css.php


Il n'y a aucun paramètre GET dedans. Si tu veux transférer les paramètres GET de la page principale à la CSS, faut les passer à la main.

Reply

Marsh Posté le 30-04-2009 à 16:10:33    

Par exemple via :

Code :
  1. <link rel="stylesheet" type="text/css" href="css/site.css.php?<?php echo htmlspecialchars($_SERVER['QUERY_STRING']) ?>" />


(à vérifier niveau escaping & sécurité).
 
Et du coup tous les paramètres GET seront transférés à la CSS

Reply

Marsh Posté le 30-04-2009 à 16:21:34    

Je partait pour chercher un truc dans le genre, mais tu m'as coupé l'herbe sous le pied.
Je teste et donne des nouvelles !!!
 
Sinon c'est parfait merci beaucoup !!!!  :love:

Reply

Marsh Posté le 30-04-2009 à 16:27:07    

Le GET passe super, je n'ai pas eu l'occasion d'essayer avec du POST.

Reply

Marsh Posté le 30-04-2009 à 16:30:30    

Le POST sera malheureusement impossible, vu que la CSS est obligatoirement appellée via la méthode GET :)

Reply

Marsh Posté le 30-04-2009 à 16:38:57    

Sinon t'as des projets comme HSS, ou tu demandes aux gars de reddit d'open-sourcer C55 :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed