Les Allergies
Alimentaires
Posez votre question Signaler

CSS dynamique et variables [Résolu]

Aleanar 27Messages postés 2 avril 2007Date d'inscription - Dernière réponse le 20 nov. 2008 à 14:54
Bonjour,
J'ai un créé un css dynamique via php en l'appellant via :
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="monsite.com/fichiers/site/design/principal.php" />

et en mettant à l'intérieur :
<?php
header("Content-type:text/css; charset=iso-8859-1");
echo('
body {
	background:url(monsite.com/fond.png) no-repeat center top;
	background-color:#525252;
	color:#FFFFFF;
	font-family:tahoma; font-size:10pt;
	margin:0px;
	text-align:center;
}
');
?>

Jusque là tout marche mais quand je remplace une couleur par une variable :
background-color:' . $couleur . '

Le problème c'est que après certaines choses ne marche plus comme le fond mais d'autre chose marche comme la mise en forme de puces pour un menu.
Je ne comprends pas pourquoi ?
D'avance merci de votre aide
Lire la suite 

CSS dynamique et variables »

12 réponses
Réponse
+0
moins plus
Peux-tu nous copier/coller le code complet de quelque chose ne fonctionne pas comme tu voudrais ?
Ajouter un commentaire
Réponse
+0
moins plus
J'ai du mal à comprendre ta phrase, tu veux le code CSS complet ?
Ajouter un commentaire
Réponse
+0
moins plus
Oui voilà.
Ajouter un commentaire
Réponse
+0
moins plus
Voilà :

<?php
header("Content-type:text/css; charset=iso-8859-1");
echo('
body {
background:url(http://127.0.0.1/Atelier%20de%20la%20Foulque/fichiers/img/fond/fond.png) no-repeat center top;
background-color:#525252;
color:#FFFFFF;
font-family:tahoma; font-size:10pt;
margin:0px;
text-align:center;
}
a {
color:#FFFFFF;
text-decoration:none;
}
a:hover {
text-decoration:underline;
}
img {
border:0px;
}
.menu {
margin: 0;
padding: 0;
list-style: none;
text-align:justify;
}
.menu a {
display: block;
padding: 4px 10px;
text-decoration: none;
}
.menu .sousmenu {
font-size: 10pt;
margin: 0;
padding: 0;
list-style: none;
}
.menu ul.sousmenu a {
background: none;
color:#525252;
padding: 3px 20px;
}
');
?>
Ajouter un commentaire
Réponse
+0
moins plus
Oulah. J'étais sur une fausse piste, je viens de comprendre ton problème :)
Désolé.
Donc, une solution "simple" serait d'utiliser pour l'inclusion de ton css dynamique :
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="monsite.com/fichiers/site/design/principal.php?couleur=004400" />

Et dans le fichier CSS quelque chose comme :
background-color: #'.$_GET["couleur"].';
Ajouter un commentaire
Réponse
+0
moins plus
J'avais pensé à méthode mais je pense que si je veux pouvoir tous modifier cela risque de faire un peu long ?!!!
Ajouter un commentaire
Réponse
+0
moins plus
Oui mais tu n'as guère d'autres moyens de faire passer des paramètres de la page vers le css.
Ils ne sont pas appelés en même temps du serveur web, et sont donc vus de manière indépendante pour lui.
Il ne peut utiliser les variables d'un fichier dans l'autre.
Il y a d'autres solutions, comme stocker les infos sur une base de données ou dans un fichier du serveur web, mais c'est aussi moins flexible.
Pour la longueur de l'url, normalement tu as de la place, tu peux y aller.
Ajouter un commentaire
Réponse
+0
moins plus
Moi ça ne me gène pas de les stocker dans mysql mais cela ne marche pas :
<?php
header("Content-type:text/css; charset=iso-8859-1");
$query = mysql_query("SELECT * FROM css");
if($css = mysql_fetch_assoc($query))
{
echo('
body {
	background:url(monsite.com/fichiers/img/fond/fond.png) no-repeat center top;
	background-color:#525252;
	color:#' . $css['couleur'] . ';
	font-family:tahoma; font-size:10pt;
	margin:0px;
	text-align:center;
}

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

a:hover {
	text-decoration:underline;
}

img {
	border:0px;
}

.menu {
margin: 0;
padding: 0;
list-style: none;
text-align:justify;

}
.menu a {
display: block;
padding: 4px 10px;

text-decoration: none;

}
.menu .sousmenu {
font-size: 10pt;
margin: 0;
padding: 0;
list-style: none;
}
.menu ul.sousmenu a {
background: none;
color:#525252;
padding: 3px 20px;
}
');
}
?>
Ajouter un commentaire
Réponse
+0
moins plus
Si ça ne marche pas avec mysql, c'est sûrement que l'enregistrement de la valeur s'est mal passé ou que la façn d'interroger la base n'est pas la bonne. Ca ne vient pas du procédé.
Ajouter un commentaire
Réponse
+0
moins plus
Y'a bug dans mon code ???? car sur mes autres pages pour afficher des actualites j'utilise la même chose
Ajouter un commentaire
Réponse
+0
moins plus
Ca marche en passant les paramètres en GET ou pas ?
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon ça marche.
Juste une dernière chose, afficher des valeurs via php/mysql cela prend plus de temps que si elles étaient écrites directement. Mais cela prend beaucoup de temps, est-ce que ça allourdi pas trop les pages ???? car au total je dois avoir 100 viariables sans le CSS dynamique
Ajouter un commentaire
Ce document intitulé « CSS dynamique et variables » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?