28173 sujets

CSS et mise en forme, CSS3

Bonjour,
j'ai un menu dont les couleurs de fond changent au survol avec a:hover (merci pour vos applaudissements).
J'aimerais bien y mettre des couleurs aléatoirement choisies dans une liste. J'ai essayé de bidouiller quelque chose qui introduisait une variable php dans ma feuille de style, et bien ça ne marche pas du tout (j'entends des rires, je ne vois vraiment pas pourquoi).
je précise que le menu est généré en php: j'ai essayé d'y introduire la propriété en question dans chaque <a>, ça ne va pas non plus

Quelqu'un a une proposition?
Merci
Modifié par Mazetto (04 Apr 2007 - 18:52)
salut,
meuh non, on ne rit pas Smiley smile deux solutions parmi d'autres :

- 1) mettre le style non pas dans la feuille de style mais dans l'en-tête de la page ou carrément en ligne et là, php et sa variable aléatoire marcheront sans problème (c'est vrai qu'un fichier .css est quand même "rarement" interpêté par php Smiley cligne )
- 2) mettre tes couleurs dans un tableau javascript et jouer avec random non plus en php mais en javascript.

Have swing
Troisième solution : générer la feuille de style externe avec PHP. Ce qui se fait ainsi :
- avoir un fichier style.php plutôt que style.css ;
- appeler le fichier style.php exactement comme on aurait appelé le fichier style.css ;
- rajouter le code suivant tout au début de la feuille de style CSS :
<?php header("Content-Type: text/css"); ?>


Voilà, ton fichier style.php est un script PHP qui génère une feuille de style CSS. Elle est pas belle, la vie ? Smiley smile

Un rappel cependant : pour des raisons d'accessibilité, il est conseillé de s'assurer que le contraste entre la couleur du texte et la couleur du fond sera suffisant. Attention donc à ne pas choisir de couleur complètement au hasard.
Eh ouais, ça paraît limpide.
Merci les gars

Pour la compatibilité visuelle, je suppose qu'il suffit
d' une $valeur = rand($nombre_min, $nombre_max); qui parcourt un tableau, dans le tableau les couleurs, et c'est donc au hasard sans l'être.
Voilà comment faire, avec une fonction qui choisit la couleur dans une liste:
1- la fonction:

[<?php // couleurs de aléatoires dans une table
function coul_aleat(){
 $couleur = array('#FF6633','#ffcc99','#99cccc','#669999','#CC9999','FFCCCC','99CCCC','#999999');
$valeur = rand(0, 6);
return $couleur[$valeur];}
?>]


2- Si la fonction est sur un fichier externe, il faut l'inclure dans la feuille de style:
[<?php include('fonctions.php'); ?>]
Sans oublier de déclarer la feuille de style comme du php avec:
[<?php header("Content-Type: text/css"); ?>]


3- après, la règle de style peut s'écrire ainsi:
[#breves a:hover{
	background-color:<?php print $coul_bg=coul_aleat(); ?>;
	}]


De cette manière, les liens en question changeront de couleur de fond à chaque rechargement de la page

Merci encore
Modifié par Mazetto (05 Apr 2007 - 12:00)