避免在列表中填充

时间:2012-11-22 14:45:00

标签: javascript html css

我正在开发一个菜单,如果打开的页面有任何子项,该菜单会展开。 它看起来像这样:

http://jsfiddle.net/phacer/qzykv/

只是用浅灰色的内部菜单吼叫它的< li>家长。 我在考虑使用行高,但在某些地方,菜单项是两行文本。而且我还需要使用每个项目之间的虚线边框。

有关如何获得我现有的但没有为有孩子的父母填充的任何建议吗?

HTML:

<nav>
<ul class="menu"><li class="first"><a href="#" title="" >Home</a></li>
<li class="active"><a href="#" title="" >Home</a><ul><li class="first"><a href="#" title="" >Home</a></li>
<li><a href="#" title="" >Home</a></li>
<li class="last"><a href="#" title="" >Home</a></li>
</ul></li>
<li><a href="#" title="" >Home</a></li>
<li><a href="#" title="" >HomeHome HomeHome Home HomeHome </a></li>
<li><a href="#" title="" >Home</a></li>
<li><a href="#" title="" >Home</a></li>
<li><a href="#" title="" >Home</a></li>
<li class="last"><a href="#" title="Contact" >Contact</a></li>
</ul>
</nav>​

CSS:

nav { width: 165px; min-height: 500px; position: relative; display: inline-block; float: left; }
nav ul li { padding: 10px 0 10px 20px; }
nav ul li a { margin-right: 10px; max-width: 125px; }
nav ul li.first { padding-top: 23px; }
nav ul li ul { margin-left: -20px; margin-top: 10px; }
nav ul li ul li { padding-left: 30px; }
nav ul li ul li.first { padding-top: 10px; }
nav ul li ul li ul { margin-left: -30px; margin-top: 10px; }
nav ul li ul li ul li{ padding-left: 40px; }
nav ul li ul li ul li.first { padding-top: 10px; }

nav ul li.active ul li a,
nav ul li.active ul li a:visited,
nav ul li.active ul li.active ul li a,
nav ul li.active ul li.active ul li a:visited       { color: #5c5c5c; }
nav a:hover,
nav ul li.active a                                  { color: #e0001b; }
nav ul li.active ul li.active a,
nav ul li.active ul li.active ul li.active a,
nav ul li.active ul li a:hover,
nav ul li.active ul li.active a:hover  { color: #91298e; }

nav                 { background: #5c5c5c repeat-x left top; }
nav ul li           { border-bottom: 1px dotted #fff; }
nav ul li ul        { background: #d6d6d7; }
nav ul li ul li     { border-bottom: none; border-top: 1px dotted #555; }
nav ul li ul li ul  { background: #ecedee; }

nav { font-size: 12px; list-style-type: none; line-height: 14.5px; text-align: left; }

2 个答案:

答案 0 :(得分:1)

您需要将nav ul li.active{padding:10px 0 0 10px;}添加到您的css,以使用li

删除有效ul的底部填充

请参阅http://jsfiddle.net/qzykv/5/

答案 1 :(得分:0)

您必须在CSS中添加以下行。它将删除有孩子的父李的填充。

nav ul li.active{padding:0px;}