Menu déroulant - HTML/CSS - Programmation
Marsh Posté le 16-11-2004 à 14:13:55
lposition:relative fonctionne très bien avec mozilla mais sans plus de précision en particulier le code de la page ou mieux, une url. on peut pas trop te dire
Marsh Posté le 20-11-2004 à 19:40:57
Ok voici le code.
function affiche_style_menu_h()
{
global $TABLE_MENU_H;
global $base;
$table=$TABLE_MENU_H;
connect_db();
$query="SELECT * FROM $table ORDER BY id";
$resu=mysql_db_query($base,$query);
while ($row=mysql_fetch_array($resu))
{
$id=$row['id'];
$type=$row['type'];
$nom=$row['nom'];
$affiche=$row['affiche'];
$lien=$row['lien'];
$fond_m=$row['fond_m'];
$fond_ms=$row['fond_ms'];
$police_m=$row['police_m'];
$taille_m=$row['taille_m'];
$gras_m=$row['gras_m'];
$souligne_m=$row['souligne_m'];
$couleur_m=$row['couleur_m'];
$couleur_ms=$row['couleur_ms'];
$surligne_ms=$row['surligne_ms'];
$aligne_m=$row['aligne_m'];
$aligne_ms=$row['aligne_ms'];
$bordure_couleur_m=$row['bordure_couleur_m'];
$bordure_style_m=$row['bordure_style_m'];
$bordure_taille_m=$row['bordure_taille_m'];
$nom=stripslashes($nom);
$lien=stripslashes($lien);
if($id<10)
{
$tnom[$id]=$nom;
$taffiche[$id]=$affiche;
$tfond_m[$id]=$fond_m;
$tfond_ms[$id]=$fond_ms;
$tpolice_m[$id]=$police_m;
$tpolice_m[$id]=$police_m;
$ttaille_m[$id]=$taille_m;
$tgras_m[$id]=$gras_m;
$tsouligne_m[$id]=$souligne_m;
$tcouleur_m[$id]=$couleur_m;
$tcouleur_ms[$id]=$couleur_ms;
$tsurligne_ms[$id]=$surligne_ms;
$taligne_m[$id]=$aligne_m;
$taligne_ms[$id]=$aligne_ms;
$tbordure_couleur_m[$id]=$bordure_couleur_m;
$tbordure_style_m[$id]=$bordure_style_m;
$tbordure_taille_m[$id]=$bordure_taille_m;
}
if($id>9)
{
$tnom[$id]=$nom;
$taffiche[$id]=$affiche;
$tlien[$id]=$lien;
}
}
$affiche_style_menu_h.='<style type="text/css"><!--';
$affiche_style_menu_h.='dl, dt, dd, ul, li {margin: 0;padding: 0;list-style-type: none;}';
$affiche_style_menu_h.='--></style>';
$affiche_style_menu_h.='<style type="text/css"><!--';
$affiche_style_menu_h.='#menu {position: relative;z-index:100;width: 1024px;}';
$affiche_style_menu_h.='--></style>';
for($i=1;$i<6;$i++)
{
if($taffiche[$i]==1)
{
$affiche_style_menu_h.='<style type="text/css"><!--';
$affiche_style_menu_h.='#smenu'.$i.' {position: absolute;z-index:1000;width: 12em;}';
$affiche_style_menu_h.='#menu dl {float: left;width: 12em;}';
if($taligne_ms[$i]=="" ) $taligne_ms[$i]="left";
if($tpolice_m[$i]=="" ) $tpolice_m[$i]="Arial";
$affiche_style_menu_h.='#smenu'.$i.' li {text-align: '.$taligne_ms[$i].';background: #'.$tfond_ms[$i].';}';
$affiche_style_menu_h.='#smenu'.$i.' li a, #menu dt a {font-size: '.$ttaille_m[$i].'px;font-family: '.$tpolice_m[$i].';color: #'.$tcouleur_ms[$i].';text-decoration: none;border: 0 none;width: 100%;}';
$affiche_style_menu_h.='#smenu'.$i.' li a:hover, #menu dt a:hover {background: #'.$tsurligne_ms[$i].';}';
$affiche_style_menu_h.='--></style>';
}
}
return $affiche_style_menu_h;
}
a+
Marsh Posté le 20-11-2004 à 20:07:05
salut,
le menu n'a rien à voir.
c'est le tableau en dessous qui se decale (balance lui un gros align=left) et refais ta page sans tableaux .
page de 200ko ! trop lourde , evite les images inutiles qui remplacent du texte.
L.
Marsh Posté le 20-11-2004 à 20:10:39
Ok merci pour l'info je vais étudier cette possibilité.
a+
Marsh Posté le 20-11-2004 à 20:15:07
Désolé mais le coup du left je viens de le tester et cela ne change rien au pb.
Tant pis il faut chercher une autre piste.
merci quant même.
Marsh Posté le 20-11-2004 à 20:49:34
Je vois pas trop l'intérêt de position: relative avec left et top à 0, ca déplace ton objet là ou il est déjà -_-
Marsh Posté le 20-11-2004 à 20:54:53
En fait c'est un menu configurable à volonté. Tu peux décider d'afficher ce menu déroulant ou pas. L'intéret de la position relative me permet de ne pas dépendre de la configuration du site et de placer ce menu au bon endroit quelque soit le choix de configuration.
Mais la position relative semble être acceptée par tous les navigateurs sauf mozilla. Et il est interressant de savoir et de comprendre pourquoi.
Marsh Posté le 20-11-2004 à 20:58:25
ARTIDOINE a écrit : En fait c'est un menu configurable à volonté. Tu peux décider d'afficher ce menu déroulant ou pas. |
ok, coule
Citation : L'intéret de la position relative me permet de ne pas dépendre de la configuration du site et de placer ce menu au bon endroit quelque soit le choix de configuration. |
Tu sais comment fonctionne position:relative?
Citation : Mais la position relative semble être acceptée par tous les navigateurs sauf mozilla. Et il est interressant de savoir et de comprendre pourquoi. |
Position: relative fonctionne très bien sous mozilla/firefox
regarde
Marsh Posté le 20-11-2004 à 21:02:33
Citation : Position: relative fonctionne très bien sous mozilla/firefox |
La preuve que non. Si tu as des documents concernant ce sujet, je suis preneur.
Marsh Posté le 20-11-2004 à 21:06:03
il t'a donné un lien sur le sujet
pour ma part, j'utilise la postion relative assez régulièrement avec mozilla et je n'ai jamais eu aucun pb.
c'est ton code qui pose problème
Marsh Posté le 20-11-2004 à 21:07:19
ARTIDOINE a écrit :
|
tu n'as pas donné la moindre preuve, je t'ai fourni un lien-test de position:relative.
et tu ne m'as toujours pas donné la preuve que tu comprends le fonctionnement de position:relative
Marsh Posté le 20-11-2004 à 21:11:32
Mjules a écrit : il t'a donné un lien sur le sujet |
Ok j'avais pas vu le lien. Mais si tu as l'habitudes tu dois voir d'ou vient le pb.
Marsh Posté le 20-11-2004 à 21:13:50
je n'ai malheureusement pas les connaissances pour corriger du javascript, j'ai déjà bien du mal à faire du html/css (même si j'ai des bases à peu près correctes dans ce domaine)
Marsh Posté le 20-11-2004 à 21:15:48
Dommage. Bon position relative fonctionne ok. Mais c'est ou le pb.
merci quant même.
Marsh Posté le 20-11-2004 à 21:15:49
re,
moi en mettant align=left à la table qui suit le menu, c'est bon avec firefox.
mais ton code est tellement "compacté" que tu dois avoir du mal à trouver la table .
L.
Marsh Posté le 20-11-2004 à 21:19:21
Non j'ai essayé de mettre align=left et cela ne change en rien. Il semblerait que le menu suivant est décalé à droite mais au même niveau et non pas en dessous. J'ai même essayé d'ajouter un <br> au cas ou. Mais cela ne change rien.
Au fait c'est pas du javascript mais du php.
merci de ton aide
Marsh Posté le 20-11-2004 à 21:24:11
ok :
1- ouvrir la page avec I.E.
2- enregistrer la page sur le disc.
3- mettre align=left à la table.
4- ouvrir avec firefox.
et maintenant ?
L.
Marsh Posté le 20-11-2004 à 21:36:13
bon j'ai fait la manip sur la table. pas d'effet. puis j'ai cherché tous les align et je les ai passé à left. Rien ne change.
Tu as fait la manip et çamarche?
Marsh Posté le 20-11-2004 à 21:37:42
Hola moi j'y arrive pas. Peux-tu me faire la même copie d'écran en affichant le code que tu as changé.
Marsh Posté le 20-11-2004 à 21:41:25
voilà:
http://bluejayway.free.fr/artidoine.htm
++
L.
(modif indiquée dans code source)
Marsh Posté le 20-11-2004 à 21:46:05
test ok sur I.E.6, mozilla.1.0, firefox.1.0, opera.7.54, netscape.7
L.
Marsh Posté le 20-11-2004 à 21:47:07
je te conseille tout de même d'alleger ta page en utilisant div + css et photos moins "lourdes" .
L.
Marsh Posté le 20-11-2004 à 23:15:32
Sinon ton site il sert à quoi?
Parceque bon, je me met à la place d'un pro, je cherche un hébergeur, je vais sûrement pas aller chez toi
Marsh Posté le 20-11-2004 à 23:17:13
D'ailleurs l'attribut correct à rajouter (ie correct syntaxiquement) aurait été align="left". Bon, en HTML 4.01 strict, il me semble que ce n'est pas imposé, mais autant prendre de bonnes habitudes.
D'accord, le code source était à l'origine pourri, mais tant qu'a faire autant essayer de l'arranger un minimum.
Marsh Posté le 16-11-2004 à 13:33:08
Bonjour
J'utilise des css afin d'afficher un menu déroulant sur mon site. Cela fonctionne bien avec IE, Netscape et Opéra. Avec Mozilla cela décale tout sur la droite.
voici la fonction utilisée pour posionner le menu:
#menu {position: relative;top: 0;left: 0;z-index:100;width: 1024;}
La position relative ne fonctionne pas avec Mozilla.
Si quelqu'un a une idée.
Merci
a+