28220 sujets

CSS et mise en forme, CSS3

bonjour

y a t il un moyen pour mettre en variables des éléments de ma feuille de style qui sont identiques, dans l'exemple ci-dessous ce serait de mettre en variable la valeur #FFFF00 )

a {
text-decoration:none;
color:#FFFF00; 
}

a:link { 
text-decoration:none;
color:#FFFF00; 
}


merci pour votre aide
Modifié par mussara (02 Aug 2005 - 10:56)
Administrateur
Dans l'exemple que tu donnes il est inutile de répéter la couleur et la décoration de texte puisqu'elles se transmettent automatiquement aux enfants et aux pseudo-classes Smiley cligne

Précision : les propriétés (s'il s'agit de propriétés héritées) que tu donnes au sélecteur a vont s'appliquer automatiquement à a:link, a:visited, a:hover et a:active
Modifié par Raphael (02 Aug 2005 - 10:37)
Non je ne crois pas que ce soit possible et c'est l'un des défauts du CSS... mais si quelqu'un a une astuce Smiley murf
Administrateur
En passant, je rappelle que les CSS ne sont pas un langage de programmation. Il y'a d'autres langages faits pour ça. Laissons chacun faire ce qu'il a à faire Smiley cligne
Administrateur
mussara a écrit :

mais dans les autres cas est ce possible?

Tu peux regrouper les sélecteurs :

a, a:link, p, .toto, #mondiv {
color : blue;
}

Par exemple
Modifié par Raphael (02 Aug 2005 - 10:41)
Tu peux générer une feuille de style à l'aide d'un script PHP, qui te permettra de décliner un même "gabarit" de feuilles en autant de jeux de couleurs que tu voudras.

Mais il serait intéressant d'en savoir d'abord un peu plus sur tes raisons de vouloir procéder ainsi ?
oui c'est vrai je n'avais pas pensé à générer la feuille par un script php... je vais me lancer dedans...

sur le pourquoi de la chose:
je fait le site d'une artiste qui change assez souvent les couleurs/styles et autres...
et elle veut pouvoir modifier au bon endroit les éléments par la suite lorsqu'elle aura le code... et du coup je me disais que ce serait plus simple pour elle d'avoir en gros un entête avec des déclarations de variables qui lui indiquent que ça va modifier tels et tels endroits, pour ne pas qu'elle se soucie d'aller au coeur du fichier css à modifier les valeurs les unes après les autres...
Attention à la façon dont tu vas t'y prendre.
Si tu regénères le CSS de temps en temps avec de la gestion de fichiers basique ça va passer mais si tu tentes de générer le CSS automatiquement avec le type MIME text/css, c'est incompatible avec beaucoup de navigateurs.

Négociation de contenu avec les feuilles de style (webnaute.net)
Modifié par 84mickael (02 Aug 2005 - 11:00)
84mickael a écrit :
Attention à la façon dont tu vas t'y prendre.
Si tu regénères le CSS de temps en temps avec de la gestion de fichiers basique ça va passer mais si tu tentes de générer le CSS automatiquement avec le type MIME text/css, c'est incompatible avec beaucoup de navigateurs.


Deux solutions :
- au plus simple, en début du fichier css PHP:
<?php header('Content-Type: text/css') ?>


- si le répertoire ne contient que des fichiers PHP destinés à produire des CSS, un .htaccess avec :

AddType text/css .php


84mickael a écrit :

Négociation de contenu avec les feuilles de style (webnaute.net)


En revanche, on évitera le type de script illustré par cette page, qui n'est pas destiné à résoudre ce problème, mais à prouver que seuls les navigateurs Gecko adressaient au serveur un en-tête signalant qu'ils acceptaient le type de contenu text/css... Ce qui n'a pas un grand intérêt en soi, d'ailleurs.
Alors j'avais mal compris.

Donc l'astuce serait de faire ça :

css.php
<?php
header('Content-Type: text/css');
$color='red';
$margin='1em';
?>

p
{
color:<?php echo $color;?>;
margin:<?php echo $margin;?>;
}

index.html
<link rel="stylesheet" type="text/css" href="css.php">

J'ai bon ? Smiley confused
Modifié par 84mickael (02 Aug 2005 - 12:19)
Youhou ça marche ! Smiley prie
Je vais pouvoir faire du CSS avec des variables et des conditions !

Seul truc chiant, avec PHPEdit, comme le nom du fichier c'est *.php, il ne mets pas le coloration syntaxique CSS.

Une idée qui me vient : un fichier php qui crée un template, initialise les variables et appelle le fichier CSS ! Smiley ola
Modifié par 84mickael (02 Aug 2005 - 12:36)
à tout hasard, est ce que la manip est validée par le w3c?

en tout cas ça ouvre plein de possiblités...
Modifié par mussara (02 Aug 2005 - 12:38)
Je n'ai pas testé mais je ne vois pas pourquoi ça ne marcherait pas.
En fait le W3C ignore tout du PHP puisque c'est éxécuté coté serveur.
Tu peux aussi utiliser cette petite astuce qui consiste à écrire dans ta feuille CSS :

body, #bloc, .menu, etc {
background-color: <? include("coul.txt"); ?>;
}


où la variable "coul.txt" est écrite directement par formulaire dans un fichier par ta cliente depuis son navigateur. Si elle a envie, elle peut changer de couleur toutes les 10 minutes Smiley lol
Bonjour,

Cette astuce ne fonctionne pas à prioris avec Internet explorer même avec
la version 7