无法居中我的导航

Posted

技术标签:

【中文标题】无法居中我的导航【英文标题】:Can't Center My Navigation 【发布时间】:2013-05-31 06:35:12 【问题描述】:

我有一个必须为 900 像素宽的导航栏,但里面的链接不一定总是跨越栏的整个宽度,所以我想将链接居中。问题是无论我尝试什么,链接都不会居中。这是我的 CSS:

.center 
    text-align: center;

nav 
    width: 900px;
    text-align: center;
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 1px;

nav ul ul 
    display: none;

nav ul li:hover > ul 
    display: block;

nav ul 
    margin: 0 auto 20px auto;
    padding: 0 20px;
    border-radius: 10px;
    list-style: none;
    position: relative;
    background: #C0C0C0;

nav ul:after 
    content:" \2022 ";
    clear: both;
    display: block;

nav ul:last-child:after 
    content:"";

nav ul li 
    display: inline-block;

nav ul li a 
    text-align: center;
    display: block;
    padding: 20px 15px;
    text-decoration: none;

nav ul ul 
    border-radius: 0px;
    padding: 0;
    position: absolute;
    top: 100%;
    z-index: 100;

nav ul ul li 
    float: none;
    position: relative;

nav ul ul li a 
    padding: 15px 40px;
    border-top: 1px solid #FFFFFF;
    border-bottom: 1px solid #FFFFFF;

nav ul ul ul 
    position: absolute;
    left: 100%;
    top:0;

我尝试将自动边距添加到导航 id,而导航 ul id 无济于事,然后我尝试将列表包装在 div 中,并使用一个使内容居中对齐的类,但这也不起作用。然后我尝试了 text-align 无济于事。我不知道该怎么做所以任何帮助将不胜感激!

这是我一直在使用的 JDFiddle:http://jsfiddle.net/VCKMU/2/

更新:在接受@Adrifts 的建议并将列表项从float:left 更改为inline-block 后,它们现在居中对齐,但现在所有子项都是内联块而不是垂直列表.有什么想法吗?

更新的 JSFiddle:http://jsfiddle.net/VCKMU/6/

【问题讨论】:

【参考方案1】:

不要浮动列表项,只需将它们的显示值更改为inline-block;,因为您已在其包含块上指定text-align: center;

http://jsfiddle.net/VCKMU/6/


唯一的问题是这会导致子项在它们应该是垂直的时变成内联列表。

您只需要修改选择器以仅针对列表项是第一个<ul> 的子项:

.center > ul > li 
display: inline-block;

http://jsfiddle.net/VCKMU/8/

【讨论】:

唯一的问题是这会导致子项在它们应该是垂直的时变成内联列表。 @Noelle,然后您必须将特定样式添加到子项。你的父母风格正在接管。 CSS 级联起来。因此,除非指定子样式,否则子代将继承父代。 哦,哇。列表...我永远不会完全正确!哈哈。谢谢@Adrift - 该列表正在运行。 谢谢@Carlos。以后会多加注意的!【参考方案2】:

如果你给nav width: auto; margin: auto; ,我认为它应该可以工作 我通常会在 Chrome 调试器中鬼混,以解决此类问题。

【讨论】:

以上是关于无法居中我的导航的主要内容,如果未能解决你的问题,请参考以下文章

在 Bootstrap 导航栏中将我的文本居中 [重复]

无法居中 Bootstrap 导航栏

Flex 导航栏无法居中

居中我的导航菜单链接

如何使用 CSS 或 HTML 居中导航栏?

如何使导航栏项 CSS 居中