为什么元素不完全在中心?



我在ul元素中有一个url列表,我希望列表在一行中。我试着用这种方法把它们放在页面的中心,但它们并不是完全在中心。

这是HTML代码
<ul id="links">
    <li class="inner-li"> <a href="about">about</a>
    </li>
    <li class="inner-li"> <a href="http://ahmadalli.net/projects">projects</a>
    </li>
    <li class="inner-li"> <a href="http://photo.ahmadalli.net">photoblog</a>
    </li>
    <li class="inner-li"> <a href="music">music</a>
    </li>
</ul>

这是我尝试过的样式

.inner-li {
    font-size: 1.25em;
    float: left;
    margin-left: 1em;
    list-style-type: none;
}
@media screen and (min-width: 21em) {
    #links {
        width: 21em;
        margin: 0 auto;
    }
}

可以在JsFiddle中看到

#links中添加display:tablepadding:0:

@media screen and (min-width: 21em) {
    #links {
        display:table;
        margin: 0 auto;
        padding: 0;
    }
}

另加

#links > li:first-child{
    margin:0;
}

导致第一个li元素不需要有margin-left

小提琴

它没有居中,因为你已经为<li>应用了margin-left

.inner-li {
 font-size: 1.25em;
 float: left;
 margin-left: 1em; /* this */
 list-style-type: none;
}

将第一个<li>推离中心1em。

您可以通过将其更改为padding: 0 .5em来实现相同的布局,居中

演示

将此代码添加到CSS文件中:

你应该定义你的菜单宽度和其他必要的代码。

#links {
    min-width: 100%;
}

最新更新