html - 如何在不拆分每个链接的情况下将水平导航菜单居中

标签 html css alignment stylesheet navbar

我一直在拼命地尝试让导航菜单居中,但我就是做不到。 我试过显示内联 block 文本对齐中心和其他东西但是当我试图让它帮助时它不会工作将是 gr8t

<html>
<style>
* {
    margin: 0px;
    padding: 0px;
    }

body {
    font-family: verdana;
    background-color: #FFF;
    padding: 50px;
    }

h1 {
    text-align: center;
    margin-bottom: 50px;
    }


ul#navmenu, ul.sub1, ul.sub2 {
    list-style-type: none;
    font-size: 9pt;
    }

ul#navmenu li {
    width: 96.6px;
    text-align: center;
    position: relative;
    margin-right: 0px;
    float: left;
    }
       #navmenu ul {
           display: inline-block;
           list-style-type: none;
   }    
ul#navmenu a {
    text-decoration: none;
    display: block;
    width: 96.6px;
    height: 25px;
    line-height: 25px;
    background-color: #2E2E2E;
    border: 1px solid #777777;
    border-top: 2px solid #777777;
    color: white;
    font-family: Arial, sans-serif;
    font-weight: bold;
    font-face: Arial;
    float: left;
    text-align: center;
    }

ul#navmenu .sub1 li {
    }

ul#navmenu .sub1 a {
    margin-top: 0px;
    }

ul#navmenu .sub2 a {
    margin-left: 0px;
    }

ul#navmenu li:hover > a {
    background-color: grey;
    }

ul#navmenu li:hover a:hover {
    background-color: red;
    }

ul#navmenu ul.sub1 {
    display: none;
    position: absolute;
    top: 26px;
    left: 0px;
    }

ul#navmenu ul.sub2 {
    display: none;
    position: absolute;
    top: 0px;
    left: 97.6px;
    }

ul#navmenu li:hover .sub1 {
    display: block;
    }

ul#navmenu .sub1 li:hover .sub2 {
    display: block;
    }

.darrow {
    font-size: 11pt;
    position: absolute;
    top: 5px;
    right: 4px;
    }

#navmenu {
        display: inline-block;
        text-align: center;
        list-style-type: none;
        margin: 0px auto;
        padding: 0px;
        position: relative;
}
.rarrow {
    font-size: 13pt;
    position: absolute;
    top: 6px;
    right: 4px;
    }

#page1 .link1{
color: grey;
border-top: 2px solid red;
}
#page2 .link2{
color: grey;
border-top: 2px solid red;
}
#page3 .link3{
color: grey;
border-top: 2px solid red;
}

</style>
</head>
<body>

<h1> Tom's Navigation Menu</h1>

<div id="page1">
<ul id="navmenu">
<li><a href="dropdown1.html" class="link1">hyperlink 1</a></li>
<li><a href="dropdown2.html" class="link2">hyperlink 2</a><font color="white">
<span class="darrow">&#9660;</font></span>
    <ul class="sub1">
        <li><a href="#">hyperlink 2.1</a></li>
        <li><a href="#">hyperlink 2.2</a></li>
        <li><a href="#">hyperlink 2.3</a></li>
    </ul>
</li>
<li><a href="#">hyperlink 3</a></li>
<li><a href="#">hyperlink 4</a><span class="darrow"><font color="white">&#9660;               

 </font></span> 
    <ul class="sub1">
        <li><a href="#">hyperlink 4.1</a></li>
        <li><a href="#">hyperlink 4.2</a></li>
        <li><a href="#">hyperlink 4.3</a><span class="rarrow">
<font color="white">&#9654;</font></span>
            <ul class="sub2">
                <li><a href="#">hyperlink 4.3.1</a></li>
                <li><a href="#">hyperlink 4.3.2</a></li>
                <li>
<a href="dropdown3.html" class="link3">hyperlink 4.3.3</a></li>
            </ul>
        </li>
    </ul>
</li>
<li><a href="#">hyperlink 5</a></li>
</ul></div>


</body>
</html>

最佳答案

尝试将这一行添加到您的 CSS 中:

#page1 {text-align:center;}

我们所做的是将 #navmenu 的父元素,即 #page1 设置为 text-align:center; .

请参阅此 jsFiddle:http://jsfiddle.net/JQBSa/

关于html - 如何在不拆分每个链接的情况下将水平导航菜单居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23178091/

相关文章:

html - 仅使用 css 将图像垂直居中于容器元素内

javascript - Jquery - Firefox 具有较慢的 .love() 悬停速度,Chrome 和 IE 很快

html - 如何使用 flexbox 使固定宽度的侧边栏与灵活的内容对齐

html - 如何将 3 个相邻的 div 与其中两个填充可用空间对齐?

javascript - 事件不会发生

html - 当我尝试将 WebView 保存到 PDF 时,为什么 NSPrintOperation 会创建一个空 PDF?

html - CSS 媒体查询顺序问题

css - 如何使用滚动条强制内容水平流动而不是通常的垂直方式

javascript - 转换多个对象搞砸了悬停

html - CSS - 带有水平居中的一行和两行长条目的顶部菜单 – 没有 flex?