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

时间:2012-05-13 17:36:03

标签: html css navigation html-lists

我在页面顶部有一个简单的导航栏,带有几个链接 - 第一个使用li浮动到左边:第一个子,最后一个浮动到右边使用li:last child,其余的居中于页面中间。

对于所有意图和目的,这都有效 - 但是虽然每个导航块之间的空间是相同的,但是中心块实际上位于更右侧。我认为这是因为链接长度不同 - 即链接1为23个字符,链接2为7个字符。

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

以下是我目前正在使用的代码,可以在此处找到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; }​

2 个答案:

答案 0 :(得分:0)

而不是使用

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; }

答案 1 :(得分:0)

Shreedhar是非常正确的,因为不需要使用'float' - 尽管不是猜测边缘分配 li:first-child li: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;
}