我有一个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>
怎么了?
答案 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;
}