最后一层css下拉菜单仅显示一个项目

时间:2012-10-11 02:20:22

标签: css drop-down-menu

我有一个css下拉菜单工作除了一件事:最后一个菜单(第三层)只显示列表中的最后一项。

该页面目前在此处:http://www.hodentalcompany.com/pages/syringe2.html 菜单位于文本右栏的底部,“从经销商处订购”

如您所见,最后一个菜单中只显示一个项目。这是css:

#DealerNav { margin: 0; padding: 0; }
#DealerNav li { list-style-type: none; position: relative; }
#DealerNav li ul { display: none; }
#DealerNav a.first { width:100%; font-size: 100%;font-weight: bold; color: #54ABDF; background-color: #FFF; margin-left:-.5em; }
#DealerNav a { display:block; font-size: 90%; width: 12em; padding: .5em; margin: 2px 0; background-color: #54ABDF; color: #FFF;  }
#DealerNav a:hover { color: #CEF; }
#DealerNav a:hover.first { color: #38B; }
#DealerNav li li a { margin-left:-3.25em; }
#DealerNav li:hover > ul { display: block; }
#DealerNav ul ul a { margin-left:6.45em; margin-top: -2.25em; }

而且,这是简化的代码:

<ul id="DealerNav">
  <li><a href="#" class="first">Order from your dealer</a>
    <ul>
    <li><a href="#">BFC Syringe (empty)</a>
            <ul>
            <li><a href="http://www.atlantadental.com" target="_blank">
                Atlanta Dental</a>
            </li>
            <li>
                <a href="http://www.benco.com" target="_blank">
                Benco Dental
                </a>
            </li> 
             <li>  
                <a href="http://www.burkhartdental.com" target="_blank">
                Burkhart Dental</a>
             </li>
             <li>
                <a href="http://www.smartpractice.com/cgi-bin/WebObjects/SmartPracticeStore.woa/wa/gotoStyle?styleNumber=S699230&g=AF_HODENTAL" target="_blank">
                Smart Practice
                </a>
             </li>
       </ul>
    </li>
    <li><a href="#">BFC Complete<br />(prefilled with Vaccu•sil)</a>
          <ul>
          <li>
                <a href="http://practicon.com/Harmony-Intro-Pack/p/70-90122/" target="_blank">
                Practicon Dental
                </a>
             </li>
          </ul>
             </li>
    <li><a href="#">Vaccu•sil Heavy Body</a>
         <ul>
            <li>
                <a href="http://www.atlantadental.com" target="_blank">
                Atlanta Dental</a>
            </li>
            <li>
                <a href="http://www.benco.com" target="_blank">
                Benco Dental
                </a>
            </li> 

             <li>
                <a href="http://www.smartpractice.com/cgi-bin/WebObjects/SmartPracticeStore.woa/wa/gotoStyle?styleNumber=S699230&g=AF_HODENTAL" target="_blank">
                Smart Practice
                </a>
             </li>
       </ul> 
    </li> 

   

怎么了?

2 个答案:

答案 0 :(得分:0)

由于您使用了否定margin-top,因此所有子菜单项都相互重叠。这会导致仅显示最后一个子菜单项。您可以使用position: absolute将子菜单放置在每个菜单项的右侧,而不是使用负边距。请查看此jsfiddle以查看此方法的详细信息。

答案 1 :(得分:0)

尝试更改此css:

#DealerNav li:hover > ul {
    display: block;
    position: absolute;
    top: 0px;
}
#DealerNav ul ul a {
    margin-left: 6.45em;
    display: block;
}