在水平CSS菜单中FireFox 4填充错误

时间:2011-05-25 04:39:53

标签: css firefox menu padding

我在这个页面有一个水平的CSS菜单:

http://72.47.251.205/ak9

在Chrome,Safari和Internet Explorer 8中,它可以完美呈现。在FireFox 4中,每个<li>稍微过于狭窄,在最后两个项目之间留下了空隙。

以下是HTML的简单示例:

<ul id="top-nav">
 <li><a href="#">Menu Item 1</a></li>
 <li><a href="#">Menu Item 1</a></li>
 <li><a href="#">Menu Item 1</a></li>
 <li class="last-item"><a href="#">Menu Item 1</a></li>
</ul>

CSS:

#top-nav {
 position: relative;
}

#top-nav li {
 float: left;
 height: 46px;
 line-height: 46px;
 width: auto;
}

#top-nav li.last-item {
 position: absolute;
 top: 0;
 right: 0;
}

#top-nav li a {
 display: block;
 padding: 0 38px;
}

我尝试使用-moz-box-sizing标记上的body CSS属性,但无济于事。

感谢任何有任何想法的人。

更新

我注意到Windows中的FF 4适当地呈现了这一点,但IE 9却没有。看起来这是跨平台以及跨浏览器的不一致。它真的开始关注我了。

另外,我在最后一项上使用绝对定位,以确保它与.wrapper div保持齐平,使所有内容保持居中。这样,渲染框宽度中的浏览器不一致将永远无法通过将最后一个项目强制到第二行来“破坏”菜单,这比现在发生的情况更糟糕。

1 个答案:

答案 0 :(得分:0)

你确定你有合适的伴侣吗?我在IE8,FF 4.0和FF 4.0.1中看起来一样,看起来很正确。但是在IE9中,您描述的问题发生在最后两个项目Media和Blog之间存在差距!

IE9

FF 4.0.1

因为你在最后一个列表项上设置了position:absolute,并且偏移属性设置在top:0,因此存在间隙的原因;右:0; - 如果你删除它,差距就会消失。