您可以在 上使用等于分隔符宽度的左填充,li
并仅更改 上的背景a
。此外,我注意到您class="separator"
在除第一个列表项之外的所有项上都使用了。您可以将其替换为:first-child
伪选择器。然后你会得到这样的东西:
li:first-child { padding-left: 0; background: transparent; }
li { padding-left: 3px; background: url(separator.png) no-repeat; }
li a { line-height: 40px; padding: 0 15px; }
li a:hover { background: url(anchor-hover.png) repeat-x; }
编辑:上面的 CSS 涵盖了这个解决方案的核心样式。这是一个工作示例(使用背景颜色):
http://jsfiddle.net/haa5X/3/
完整的 CSS:
ul { overflow: hidden; background: green; }
li:first-child { padding-left: 0; }
li { padding-left: 3px; float: left; background: red; }
li a { float: left; line-height: 40px; padding: 0 15px; background: yellow; }
li a:hover { background: purple; }
完整的 HTML:
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
编辑2:对不起,错过了子菜单的一部分:
http://jsfiddle.net/haa5X/4/
完整的 CSS:
ul { overflow: hidden; margin: 0; background: green; }
ul > li:first-child { padding-left: 0; }
ul > li { padding-left: 3px; float: left; background: red; }
ul > li a { float: left; line-height: 40px; padding: 0 15px; background: yellow; }
ul > li a:hover { background: purple; }
li ul { display: none; position: absolute; margin-top: 40px; }
li:hover ul { display: block; }
li li { padding-left: 0; float: none; display: block; }
li li a { float: none; display: block; width: 100%; }
完整的 HTML:
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a>
<ul>
<li><a href="#">First sub item</a></li>
<li><a href="#">Sub item 2</a></li>
<li><a href="#">Last sub item</a></li>
</ul>
</li>
<li><a href="#">Item 3</a></li>
</ul>
</p>