列表项之间的不需要的边距或填充

JaP*_*k14 2 html css html5 css3

我的css中有一个小设计问题,我想知道是否有人可以为我查看.设计问题在于水平导航的翻转效果.似乎有某种额外的边距或填充,但我在css中找不到问题.我将粘贴我正在使用的代码,以便您自己查看.在翻转导航列表项之前,您将无法看到问题.

HTML:

    <div class="Horiznav">
  <ul>
    <li id="active"><a href="#">Link #1</a></li>
    <li><a href="#">Link #2</a></li>
    <li><a href="#">Link #3</a></li>
    <li><a href="#">Link #4</a></li>
    <li><a href="#">Link #5</a></li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.Horiznav {
  background: #1F00CA;
  border-top: solid 1px #fff;
  border-bottom: solid 1px #fff;
}
.Horiznav ul {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  color: #fff;
  text-Align: center;
  margin: 0;
  padding-top: 5px; padding-bottom: 5px;
}
.Horiznav ul li {
  display: inline;
}
.Horiznav ul li a {
  padding-top: 5px;
  padding-bottom: 5px;
  color: #fff;
  text-decoration: none;
  border-right: 1px solid #fff;
}
.Horiznav ul li a:hover {
  background: #16008D;
  color: #fff;
}
#active a { border-left: 1px solid #fff; }
Run Code Online (Sandbox Code Playgroud)

MrW*_*ite 5

由于您有li元素display:inline问题(每个菜单/列表项左侧的额外间隙)是HTML标记中的空白区域的结果.你可以:

A - 摆脱HTML中的空格:

<ul><li id="active"><a href="#">Link #1</a></li><li><a href="#">Link #2</a></li><li><a href="#">Link #3</a></li><li><a href="#">Link #4</a></li><li><a href="#">Link #5</a></li></ul>
Run Code Online (Sandbox Code Playgroud)

B - 或者,使用font-size:0技巧:

设置font-size:0在上ul容器,并与覆盖这个font-size:whateverli子元素:

.Horiznav ul {
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  color: #fff;
  text-Align: center;
  margin: 0;
  padding-top: 5px; padding-bottom: 5px;
  font-size: 0;       /* #1 */
}
.Horiznav ul li {
  display: inline;
  font-size: 16px;    /* #2 */
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/EZSvC/4/

C - 或者,使用浮动布局:

浮动li元素(然后隐式显示为块)并清除ul容器上的浮动overflow:hidden.但是,您需要给容器宽度并应用,margin:0 auto如果您希望它居中.

http://jsfiddle.net/EZSvC/5/