2010-11-22 15 views
0

Je crée un menu déroulant basé sur le suckerfish. Le niveau supérieur s'affiche correctement, mais le premier niveau de sous-menu place tous les éléments de menu empilés les uns sur les autres juste en dessous du niveau supérieur. Tout est correct sauf que les éléments se chevauchent. Mon html et css sont ci-dessous.CSS DropDown Les éléments du menu se chevauchent

<ul id="nav"> 
    <li style="border-left: none;"> 
     <link here> 
     <ul> 
      <li> 
       <link here> 
       <ul> 
        <li> 
         <link here> 
        </li> 
       </ul> 
       <ul> 
        <li> 
         <link here> 
        </li> 
       </ul> 
      </li> 
     </ul> 
     <ul> 
      <li> 
       <link here> 
       <ul> 
        <li> 
         <link here> 
        </li> 
       </ul> 
      </li> 
     </ul> 
     <ul> 
      <li> 
       <link here> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <link here> 
     <ul> 
      <li> 
       <link here> 
      </li> 
     </ul> 
     <ul> 
      <li> 
       <link here> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <link here> 
    </li> 
    <li> 
     <link here> 
    </li> 
    <li> 
     <link here> 
    </li> 
    <li> 
     <link here> 
    </li> 
</ul> 


#nav, #nav ul { 
    padding: 0; 
    margin: 0; 
    list-style: none; 
} 

#nav a { 
    display: block; 
} 

#nav li { 
    float: left; 
    padding: 0px 10px 0px 10px; 
} 

#nav li ul { 
    position: absolute; 
    width: 200px; 
    color: #FFF; 
    background-color: #000; 
    left: -999em; 
} 

#nav li:hover ul { 
    left: auto; 
} 

#nav li:hover ul, #nav li.sfhover ul { 
    left: auto; 
} 

#nav li ul ul { 
    margin: -1em 0 0 10em; 
} 

#nav, #nav ul { 
    padding: 0; 
    margin: 0; 
    list-style: none; 
    line-height: 1; 
} 

#nav li:hover ul ul, #nav li.sfhover ul ul { 
    left: -999em; 
} 

#nav li:hover ul, #nav li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul { 
    left: auto; 
} 

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul { 
    left: -999em; 
} 

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul { 
    left: auto; 
} 

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li:hover ul ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul, #nav li.sfhover ul ul ul ul { 
    left: -999em; 
} 

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul, #nav li li li li.sfhover ul { 
    left: auto; 
} 

Mon CSS est tiré à peu près directement de suckerfish. il y a quelques petits changements comme les largeurs et la couleur de fond, mais le problème était là même quand c'était une copie directe. Actuellement, j'essaie seulement d'obtenir ceci dans Firefox, car j'obtiens le même problème dans chaque navigateur que j'essaye.

Juste un fyi, j'utilise umbraco comme CMS pour ce site, et il génère le html pour le menu. Il y a des liens réels que je ne peux pas poster car je suis nouveau ici, ils contiennent juste l'attribut hfer.

Merci

Répondre

0

Pour autant que je sais que la technique suckerfish ne prend pas en charge les listes imbriquées double. Ce qui signifie qu'une UL peut être imbriquée aussi profondément que vous le souhaitez (si la CSS le supporte bien sûr) mais ce qu'elle ne peut pas faire, c'est UL de style 2 au même niveau.

Veuillez vérifier mon HTML révisé (sans doubles UL imbriqués).

<ul id="nav"> 
    <li style="border-left: none;"> 
     <a href="#">Test link</a> 
     <ul> 
      <li> 
       <a href="#">Test link</a> 
      </li> 
      <li> 
       <a href="#">Test link</a> 
      </li> 
      <li> 
       <a href="#">Test link</a> 
       <ul> 
        <li> 
         <a href="#">Test link 1</a> 
        </li> 
        <li> 
         <a href="#">Test link 2</a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
    <li> 
     <a href="#">Test link</a> 
     <ul> 
      <li> 
       <a href="#">Test link</a> 
       <ul> 
        <li> 
         <a href="#">Test link 1</a> 
        </li> 
        <li> 
         <a href="#">Test link 2</a> 
        </li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

Vous pouvez également check it online. Sur une note de côté, votre CSS pour les articles et les UL de deuxième niveau semble avoir besoin d'un peu de travail (ils flottent mal maintenant - en fonction de la façon dont vous voulez que cela ressemble bien sûr).

+0

Oui, c'était, n'a pas vu les UL inutiles Merci – Court