将水平CSS菜单居中(Center a horizontal CSS menu)

编程入门 行业动态 更新时间:2024-10-21 15:55:27
将水平CSS菜单居中(Center a horizontal CSS menu)

我有一个使用以下CSS的CSS菜单。

将整个菜单置于页面中心的最佳方法是什么?

我尝试在<nav> <div>外使用另一个<div>并设置边距,但它只是一直左对齐。

nav { margin: 0 auto; text-align: center; border:1px solid black; } nav ul ul { display: none; } nav ul li:hover > ul { display: block; } nav ul { list-style: none; } nav ul li { float: left; } nav ul li:hover a { color: #000000; } nav ul li a { display: block; padding: 10px 15px; color: #000000; text-decoration: none; } nav ul ul { border-radius: 0px; padding: 0; position: absolute; } nav ul ul li { float: none; border-top: 1px solid #000000; border-bottom: 1px solid #000000; position: relative; } nav ul ul li a { color: #000000; } nav ul ul li a:hover { color: #666666; } nav ul ul ul { position: absolute; top:0; }

jsfiddle: http : //jsfiddle.net/njuVm/

I have a CSS menu using the following CSS.

What is the best way to center the whole menu on the page?

I have tried using another <div> outside <nav> and setting margins but its just aligning left all the time.

nav { margin: 0 auto; text-align: center; border:1px solid black; } nav ul ul { display: none; } nav ul li:hover > ul { display: block; } nav ul { list-style: none; } nav ul li { float: left; } nav ul li:hover a { color: #000000; } nav ul li a { display: block; padding: 10px 15px; color: #000000; text-decoration: none; } nav ul ul { border-radius: 0px; padding: 0; position: absolute; } nav ul ul li { float: none; border-top: 1px solid #000000; border-bottom: 1px solid #000000; position: relative; } nav ul ul li a { color: #000000; } nav ul ul li a:hover { color: #666666; } nav ul ul ul { position: absolute; top:0; }

jsfiddle : http://jsfiddle.net/njuVm/

最满意答案

您可以使用以下CSS规则使导航栏居中:

nav {
    margin: 0 auto; 
    text-align: center;
    border:1px solid black;
}

nav ul ul {
    display: none;
}

nav ul li:hover > ul {
    display: block;
}

nav ul {
    list-style: none;
    margin: 0;                 /* << add this */
    padding: 0;                /* << add this */
    display: inline-block;     /* << add this */
    vertical-align: top;       /* << add this */
}

nav ul li {
    float: left;
    margin: 0;          /* << add this */
    padding: 0;         /* << add this */
}

nav ul li:hover a {
    color: #000000;
}

nav ul li a {
    display: block; 
    padding: 10px 15px;
    color: #000000;
    text-decoration: none;
    background-color: pink; /* optional... */
}       

nav ul ul {
    border-radius: 0px;
    padding: 0;
    position: absolute;
}

nav ul ul li {
    float: none; 
    border-top: 1px solid #000000;
    border-bottom: 1px solid #000000;
    position: relative;
}

nav ul ul li a {
    color: #000000;
}

nav ul ul li a:hover {
    color: #666666;
}

nav ul ul ul {
    position: absolute;
    top:0;
}
 

请参阅演示: http : //jsfiddle.net/audetwebdesign/DP6Ax/

关键是设置display: inline-block for nav ul ,这将允许你的text-align: center规则生效。

确保将ul和li元素上的边距和填充清零。 你所做的其他事情或多或少是正确的,所以你应该做得很好。

You can center the navigation bar by using the following CSS rules:

nav {
    margin: 0 auto; 
    text-align: center;
    border:1px solid black;
}

nav ul ul {
    display: none;
}

nav ul li:hover > ul {
    display: block;
}

nav ul {
    list-style: none;
    margin: 0;                 /* << add this */
    padding: 0;                /* << add this */
    display: inline-block;     /* << add this */
    vertical-align: top;       /* << add this */
}

nav ul li {
    float: left;
    margin: 0;          /* << add this */
    padding: 0;         /* << add this */
}

nav ul li:hover a {
    color: #000000;
}

nav ul li a {
    display: block; 
    padding: 10px 15px;
    color: #000000;
    text-decoration: none;
    background-color: pink; /* optional... */
}       

nav ul ul {
    border-radius: 0px;
    padding: 0;
    position: absolute;
}

nav ul ul li {
    float: none; 
    border-top: 1px solid #000000;
    border-bottom: 1px solid #000000;
    position: relative;
}

nav ul ul li a {
    color: #000000;
}

nav ul ul li a:hover {
    color: #666666;
}

nav ul ul ul {
    position: absolute;
    top:0;
}
 

See demo at: http://jsfiddle.net/audetwebdesign/DP6Ax/

The key is to set display: inline-block for nav ul, which will allow your text-align: center rule to take effect.

Make sure to zero out margins and paddings on the ul and li elements. Everything else that you did was more or less right, so you should be good.

更多推荐

本文发布于:2023-04-27 23:10:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1329689.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:菜单   水平   CSS   menu   Center

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!