5

我在下面有一个jsfiddle,我的链接示例显示在一个内联块中,我不明白为什么每个锚标记的开头都有某种填充或边距,也许有人可以帮助我,我不确定我是否遗漏了什么,但我似乎无法找出为什么会有那个填充物?

这是html代码:

 <div class="wrapper">
   <header class="main-header">
            <h1>blah blah blah</h1>
            <nav class="main-nav">
                <ul class="main-nav-links">
                    <li><a href="#">Home</a></li>
                    <li><a href="#">About Us</a></li>
                    <li><a href="#">Get a Quote</a></li>
                    <li><a href="#">Contact</a></li>
                </ul>
            </nav>
        </header>

这是所有的css代码:

.wrapper {
    width: 100%;
    min-width: 960px;
}

.main-header {
    position: relative;
    width: 100%;    
    height: 60px;
    background-color: #41a2cd;
}

.main-header > h1{
    float: left;
    margin: 11px 0 0 5px;
    color: #073a4f;
}

.main-nav-links > li {
    list-style: none;
    display: inline-block;
}

.main-nav-links li > a {
    text-decoration: none;
    display: block;
    color: #073a4f;
}

.main-nav-links > li {
    border-right: 1px solid #45b1e1;
}

.main-nav-links li > a:hover {
    background-color: #ffffff;
    /*background-color: #50bae8;*/
}

http://jsfiddle.net/pDvZt/

4

3 回答 3

6

使用display: inline-block;时会4px在元素之间留出间距,因此需要使用margin-left: -4px;或考虑使用float

演示(使用margin-left: -4px;

.main-nav-links > li {
    list-style: none;
    display: inline-block;
    margin-left: -4px;
}

演示 2(使用float属性)

.main-nav-links > li {
   list-style: none;
   float: left;
}

float: left;注意:如果您使用forli属性,请不要忘记清除浮动元素。


编辑:我想指定,为了防止这种行为,您还可以修改您的标记(如果您可以访问它),而不是排列您的li元素,以便元素之间的空白不再存在,因为例子

<ul>
   <li></li><li></li><li></li><li></li>
</ul> 
于 2013-08-08T04:57:33.247 回答
1

一种解决方案是将

<li></li><li></li> 

在一行中。这实际上是因为新行被格式化为空格。

于 2013-08-08T05:04:17.700 回答
0
<li></li><li></li> 

它是您可以获得的最佳解决方案

于 2013-08-08T06:24:09.617 回答