Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1216 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  menu déroulant - problème positionnement bloc

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

menu déroulant - problème positionnement bloc

n°1954884
PioPioTe
Posté le 04-01-2010 à 15:59:35  profilanswer
 

Bonjour à tous, j'ai vu dans un tuto la possibilité d'afficher ou non un bloc en CSS/XTHML.
ayant compris le système, je suis décidé à créer mon menu déroulant. Tout fonctionne pour le mieux sauf le positionnement du bloc.
Je ne trouve pas la solution.
Voici le code CSS

.nav {font-size: 12px;font-family: Arial, Helvetica, sans-serif;color: #FFFFFF;}
#menu {margin: 0px;padding-top: 0px;padding-right: 0px;padding-bottom: 2px;padding-left: 0px;}
#menu li {list-style-type: none;display: inline;margin: 0px;padding: 0px;}
#menu li a{color: #FFFFFF;text-decoration: none;}
#menu li a:hover{color: #FF0000;}
#menu li ul {display: none;position: absolute;}
#menu li:hover ul {display: block;background: #FFFFFF;border: 1px solid #000000;padding: 5px;}
#menu li:hover ul a {display: list-item;color: #000000;font-size: 11px;line-height: 16px;;}
#menu li:hover ul a:hover {color: #FF0000;}


Voici mon code html

<span class="nav">
  <ul id="menu">
    <li><a href="index.html" target="_self"  id="current" >accueil</a></li>  
    |
    <li><a href="#" >qui sommes-nous?</a>
      <ul>
        <li><a href="historique.html" target="_self" >- Historique</a></li>
        <li><a href="agrements.html" target="_self" >- Agréments</a></li>
        <li><a href="rapport.html" target="_self" >- Rapports</a></li>
      </ul>
    </li>  
    |
    <li><a href="#">nos métiers</a>
      <ul>
        <li><a href="controle.html" target="_self" >- Contrôle</a></li>
        <li><a href="diagnostics.html" target="_self" >- Diagnostics</a></li>
        <li><a href="surveillance.html" target="_self" >- Surveillance</a></li>
        <li><a href="performance.html" target="_self" >- Performance</a></li>
      </ul>
    </li>  
  </ul>
</span>


Invariablement, le bloc apparait au début du menu malgré des essais avec "position: relative;" ou autre test farfelus.
Merci de votre coup de main

mood
Publicité
Posté le 04-01-2010 à 15:59:35  profilanswer
 

n°1954890
David Bori​ng
Posté le 04-01-2010 à 16:09:25  profilanswer
 

2 Remarques :  
1° les pipes (|) ne doivent pas se retrouver dans ton html (c'est en effet pénible car elle sont lues par un lecteur texte). Même chose pour tes - du deuxième niveau
2° tu n'as pas d'erreur de validation en mettant ta liste dans un span ?  
 
sinon, pour ta question, tes sous-menus doivent être relatifs par rapport au li en question
--> #menu li {position:relative}

n°1954895
PioPioTe
Posté le 04-01-2010 à 16:23:53  profilanswer
 

merci pour ta réponse rapide !!
- je ne comprend pas bien l'histoire des "|" et "-".
- comment faire la validation dont tu parles ?
- tu as raison pour la relativité des sous-menu, j'ai déjà essayé ta solution mais ça marche pas

n°1954906
David Bori​ng
Posté le 04-01-2010 à 16:39:07  profilanswer
 

Installe l'extension pour firefox "html validator" http://users.skynet.be/mgueury/mozilla/
Cela permet de vérifier si ton code est valide selon le w3c
Là tu as un élément inline (ton span) qui contient un élément block (ton ul), cela engendre une erreur de validation.
Tu devrais donc remplacer ton span par un div, ou voir si tu ne peux pas pas garder le ul uniquement, sans rien autour
 
Dans ton html, tu mets des informations qui ne devrait pas être là.
en effet, les | sont lus, ce n'est pas bon, il devrait apparaitre uniquement par css. Perso, moi j'emploie une bordure sur les li pour séparer les élements de menus.
C'est la même chose pour tes - devant tes éléments de sous menus.
Imagine en plus que ton site est un CMS, cela veux dire que tu dois introduire ces trait d'union pour chaque élément.
 
Bref, ce sont des éléments de décoration, il faut donc les faire en css.
 
 

n°1954913
PioPioTe
Posté le 04-01-2010 à 16:46:21  profilanswer
 

merci David
ok pour les éléments de déco !! je vais essayé ça, mais pour la bordure sur les LI, comment faire pour le dernier élément (si tu vois ce que je veux dire)
En fait, j'utilise un SPAN car j'ai un autre menu sur la gauche (liste simple avec rollover)... c'est pour les différencier.
je regarde pour la validation W3C.

n°1954915
David Bori​ng
Posté le 04-01-2010 à 16:52:16  profilanswer
 

Deux solutions pour le dernier éléments, mettre la "pipe" sur la bordure de gauche, et jouer avec des marges négatives (un peu chaud)
Plus simplement donner une class "last" au dernier li avec comme proriété border:none
 
Mets plutôt une classe sur les deux ul pour les différencier.

n°1954916
PioPioTe
Posté le 04-01-2010 à 16:56:34  profilanswer
 

j'essaye tout ça... merci de ton aide

n°1954951
PioPioTe
Posté le 04-01-2010 à 18:34:05  profilanswer
 

oulala, c'est pas simple tout ça !! mais ça fonctionne presque !!
encore quelques erreurs sur le background de mes td pour la validation W3C
merci David pour ta rapidité et ta patience

n°1955054
David Bori​ng
Posté le 05-01-2010 à 11:02:12  profilanswer
 

Attention, j'espère que tes tables ne sont pas là pour faire le layout, mais uniquement pour afficher des données tabulées

n°1955900
PioPioTe
Posté le 07-01-2010 à 17:27:56  profilanswer
 

bonjour, désolé mais je ne comprend pas ce que tu veux dire !!
c'est bien ce plug W3C, par contre je vois maintenant que la plupart des sites contiennent bon nombre d'erreur !!
en tout cas merci pour ton astuce pour les pipes.

mood
Publicité
Posté le 07-01-2010 à 17:27:56  profilanswer
 

n°1956042
David Bori​ng
Posté le 08-01-2010 à 10:43:09  profilanswer
 

Je vois que tu dois mettre des background sur des td.  
J'en tire comme conclusion que tu emploies une table.
Je me permettais donc de te rappeller que les tables ne servent pas à faire la mise en page (layout)  
http://openweb.eu.org/articles/problemes_tableaux

n°1956106
PioPioTe
Posté le 08-01-2010 à 11:59:28  profilanswer
 

hello David,
tu as vu juste... j'utilise en effet des tables pour ma mise en page, car cela fonctionne et je trouve ça plus simple que les DIV (pour l'instant).
C'est un peu de la fainéantise, je l'admets... Je ne comprends pas encore bien comment gérer toute la mise en page avec des DIV+CSS et je trouve ça un peu plus complexe qu'avec des tables même si je découvre les énormes possibilités offertes par CSS.
Tu m'as convaincu, je vais me pencher sur le sujet.
Merci pour tes bons conseils.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  menu déroulant - problème positionnement bloc

 

Sujets relatifs
Problème de transparence bitmapprobleme de choix dans une base mysql a partir d'une date
Problème hauteur CSS[JAVA]Probleme affichage adresse memoire
[RESOLU] Probleme avec AJAX Star Rating sur IEProbleme d'affectation de flotte
Doxygen (problème avec des noms de variable/de classe)Problème avec news pour site web
Probleme de compatibilite entre IE et FirefoxProbleme vidéo inséré sous Firefox
Plus de sujets relatifs à : menu déroulant - problème positionnement bloc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR