具有浮动左右元素的无序列表导航



我在页面顶部有一个简单的导航栏,上面有几个链接——第一个使用 li:first child 向左浮动,最后一个使用 li:last child 向右浮动,其余部分在页面中间居中。

从所有意图和目的来看,这都是有效的 - 但是尽管每个导航块之间的空间相同,但中央块实际上位于右侧更远的位置。我认为这是因为链接的长度不同——即链接 23 个字符 1 个字符,链接 7 个字符 2 个字符。

有没有办法解决这个问题,或者我应该使用另一种方法将中间块放置在页面的绝对中心?

下面是我目前正在使用的代码,可以在这里找到一个jsfiddle:http://jsfiddle.net/pxuVJ/

编辑 19:28 13.05.12由于解释起来有点混乱,我截屏说明了这个问题:http://bit.ly/Khd8cN

非常感谢。

.HTML:

<nav>
<div id="navigation">
<ul>
    <li><a href="#home">title of site</a></li>
    <li><a href="#link 1">link 1</a></li>
    <li>&#8226;</li>
    <li><a href="#link2">link 2</a></li>
    <li>&#8226;</li>
    <li><a href="#link 3">link3</a></li>
    <li><a href="#contact">contact</a></li>
</ul>
</div>
</nav>

.CSS:

nav {
font: 10pt Courier;
position: fixed;
top: 0; right: 0; bottom: 0; left: 0;
height: 20px;
padding: 20px;
background-color: #ffffff;
text-transform: uppercase;
z-index: 10;
text-align: center;
}
nav li { display: inline; list-style: none; }
nav li:first-child { float: left; }
nav li:last-child { float: right; }​

而不是使用

dispaly:inline;

您可以使用

nav li { float:left; list-style: none; padding : 10px; }
nav li:first-child { margin-right:50px; } nav li:last-child { margin-left:50px; }

Shreedhar 说得很对,因为不需要使用"float"——尽管与其猜测分配 li:first-childli:last child 绝对位置的边距似乎是一种更好的方法——它似乎也适用于中央块中任意数量的链接。

nav li {
    display: inline;
    list-style: none;
    text-align: center;
}
nav li:first-child {
    position: absolute;
    left: 20px;
    text-align:left;
}
nav li:last-child {
    position: absolute;
    right: 20px;
    text-align: right;
}

最新更新