1

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

该页面目前在这里: 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> 

怎么了?

4

2 回答 2

0

因为您使用了否定词margin-top,所以所有子菜单项相互重叠。这会导致只有最后一个子菜单项可见。position: absolute您可以使用将子菜单放置在每个菜单项的右侧,而不是使用负边距。看看这个jsfiddle以了解这种方法的详细信息。

于 2012-10-11T02:33:44.143 回答
0

尝试更改此 CSS:

#DealerNav li:hover > ul {
    display: block;
    position: absolute;
    top: 0px;
}
#DealerNav ul ul a {
    margin-left: 6.45em;
    display: block;
}
于 2012-10-11T02:43:30.997 回答