Rechercher : dans
Par :

CSS dynamique et variables

Dernière réponse le 20 nov 2008 à 14:54:45 Aleanar, le 20 nov 2008 à 14:08:31 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Safari 525.26.13

Meilleures réponses pour « CSS dynamique et variables » dans :
Créer un site beau, dynamique et respectueux des standards VoirVoici une liste de liens qui vous aideront à mieux exploiter les standards (HTML, CSS, DOM...) pour créer des sites plus beaux, plus dynamiques et plus respectueux des standards. A la fin de cette page, il y a également une liste de...
[Sécurité] IP statique (fixe) ou dynamique ? VoirQu'appelle-t-on IP fixe/dynamique ? Comment choisir son adresse IP ? Que choisir entre adresse IP fixe ou dynamique ? Comment obtenir une adresse IP fixe ? Qu'appelle-t-on IP fixe/dynamique ? Quand vous vous connectez à internet, votre...
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

OlgarK, le 20 nov 2008 à 14:13:40

Peux-tu nous copier/coller le code complet de quelque chose ne fonctionne pas comme tu voudrais ?

Répondre à OlgarK

2

Aleanar, le 20 nov 2008 à 14:14:55

J'ai du mal à comprendre ta phrase, tu veux le code CSS complet ?

Répondre à Aleanar

3

OlgarK, le 20 nov 2008 à 14:16:27

Oui voilà.

Répondre à OlgarK

4

Aleanar, le 20 nov 2008 à 14:23:34

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;
}
');
?>

Répondre à Aleanar

5

OlgarK, le 20 nov 2008 à 14:23:59

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"].';

Répondre à OlgarK

6

Aleanar, le 20 nov 2008 à 14:27:48

J'avais pensé à méthode mais je pense que si je veux pouvoir tous modifier cela risque de faire un peu long ?!!!

Répondre à Aleanar

7

OlgarK, le 20 nov 2008 à 14:31:07

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.

Répondre à OlgarK

8

Aleanar, le 20 nov 2008 à 14:41:36

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;
}
');
}
?>

Répondre à Aleanar

9

OlgarK, le 20 nov 2008 à 14:45:28

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é.

Répondre à OlgarK

10

Aleanar, le 20 nov 2008 à 14:49:27

Y'a bug dans mon code ???? car sur mes autres pages pour afficher des actualites j'utilise la même chose

Répondre à Aleanar

11

OlgarK, le 20 nov 2008 à 14:51:10

Ca marche en passant les paramètres en GET ou pas ?

Répondre à OlgarK

12

 Aleanar, le 20 nov 2008 à 14:54:45

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

Répondre à Aleanar
Collection CommentÇaMarche.net