Bonjour à tous.
J'ai effectué une recherche dans les forums mais pas trouvé d'aide/réponses sur mon problème.
Mon application web comporte une liste d'éléments sur la gauche. Ces éléments sont récupérés dans une table de la base de données.
Si je récupère des éléments j'affiche en haut de cette liste une petite div avec le nombre d'éléments.
Si je ne récupère aucun élément (table de la base vide) je n'affiche pas cette petite barre.
En conséquence l'affichage, ou non, de cette petite barre modifie la hauteur de la "marge" que je dois laisser entre le haut de ma page/fenêtre et le début de la div de la liste.
J'ai donc passé mon CSS en php, j'ai changé l'extension, inclus le header php tout en haut du CSS pour lui indiqué le type, et évidement modifié l'extension lors de l'appel du CSS dans mon index.
Dans mon CSS à l'endroit ou je fait le echo de la variable ca me dit que la variable est inconnue.
Je me dit que cela vient peut être du fait que le CSS est chargé avant mon traitement qui défini la valeur de la variable.
Du coup pour tester j'ai déclarée ma variable avant l'appel du CSS dans le header du HTML en lui donnant une valeur par défaut.
Mais même la ca ne fonctionne pas :s (Ma variable est pourtant bien définie avec une valeur avant l'appel du CSS.
Voici le code du CSS :
Voici le code dans le HTML/PHP de mon index :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php header("Content-type: text/css; charset=UTF-8"); ?> .... #sidebar_list { ... top: <?php echo $topsidebarlist; ?> ; ... }
Comme vous le voyez dans le code HTML/PHP de mon index j'ai passé ma div de la petite barre avant celle de ma liste pour être sur que ma variable soit définie avant que la liste soit générée et affichée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 ... <?php $topsidebarlist = "47px"; if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== FALSE ) { echo "<link rel='stylesheet' type='text/css' href='designs/IEDesign.php'/>"; } else { echo "<link rel='stylesheet' type='text/css' href='designs/design.php'/>"; } .... <?php $nb_elem = $db->requestSELECT("*", $table_oupper, "", "", "", "", ""); $nb_elem = mysql_num_rows($nb_elem); if($nb_elem > 0) { $topsidebarlist = "73px"; echo "<!--Liste --><div id='nb-elem'><span>".$nb_elem." élément(s)</span></div>"; unset($nb_elem); } else { $topsidebarlist = "47px"; } ?> <!--Liste --> <div id="sidebar_list" > <?php require_once('includes/list.php');?> </div>
Mais le problème c'est que malgré tout ca le résultat reste ca :
Le CSS se trouve ne pas avoir de valeur pour le top de ma div et du coup seul la propriété bottom est prise en compte, ma div se retrouve alors collée en bas avec un espace vide alors que ma liste devrait faire tout la hauteur de ma fenêtre.
Pour voir le résultat en vrai et regarder tout le code : http://www.tibimac.com/SecretBox/
Partager