【问题标题】:Center navigation bar中心导航栏
【发布时间】:2014-04-11 09:17:25
【问题描述】:

我正在尝试使导航栏居中。

HTML 是

<nav>
    <ul>
        <li><a href="../help.html">HJEM</a></li>
        <li><a href="instructions.html">FORUM</a></li>
        <li><a href="instructions.html">DONER</a></li>
        <li style="margin-right: 0px;"><a href="legal.html">SERVERE</a>
        <li style="margin-right: 0px;"><a href="legal.html">FAQ</a></li>
        <li style="margin-right: 0px;"><a href="legal.html">KONTAKT</a></li>
    </ul>
</nav>

CSS 是

nav {margin: 3px 0; width: 700px;}
nav ul {width: 700px; height: auto; list-style: none;}
nav ul li a {
    background: #FFFFFF;
    font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    font-weight: 300;
    font-size: 18px;
    text-align: center;
    color: #717171;
    text-decoration: none;
    float: left;
    padding: 8px 0;
    width: 106px;
    margin: 0px 10px 0 0;
}
nav ul li a:hover {background: #f1f1f1;}

现在它从左到右浮动。我想把它居中。

奖金问题;如果有人知道这一点,如果你能指出如何为“doner”创建触摸兼容子菜单的方向。

感谢您的宝贵时间。 hjortefjellet.com

【问题讨论】:

    标签: html json css centering


    【解决方案1】:

    如果你想让元素排成一行,我会使用li { display:inline-block; }

    然后你可以为你的导航元素定义:margin: 3px auto;

    我是否理解您的意思,您需要一个用于导航中项目的下拉菜单?这并不难:将下拉菜单作为 div 元素添加到 li 元素中:

    <li>
      <a href="../help.html">HJEM</a>
      <div class="dropdown">Hello!<br />I'm a dropdown menu!</div>
    </li>
    

    然后添加到样式表中:

    .dropdown {
      display:none;
      position:absolute;
      top:56px;
      background-color:#f1f1f1;
      width:200px;
      padding:10px;
    }
    
    li:hover .dropdown, .dropdown:hover { display:block; }
    

    【讨论】:

    • 您还需要一点点,包括更改标记以使其正常工作;)
    • 对不起,我不明白为什么。我已经测试过了,只要我改变了“margin: 3px 0;”到“margin:3px auto;”,效果很好。至少下拉菜单有效吗?
    【解决方案2】:

    就这样做

    nav {
       margin: 3px auto;
    }
    

    【讨论】:

    【解决方案3】:

    首先,关闭你的第四个“li”标签。另外,添加“margin:0 auto;”到“nav ul”并删除内联样式。

    代码应如下所示:

    HTML

    <nav>
      <ul>
        <li><a href="../help.html">HJEM</a></li>
        <li><a href="instructions.html">FORUM</a></li>
        <li><a href="instructions.html">DONER</a></li>
        <li><a href="legal.html">SERVERE</a></li>
        <li><a href="legal.html">FAQ</a></li>
        <li><a href="legal.html">KONTAKT</a></li>
     </ul>
    </nav>
    

    还有 CSS

    nav {margin: 3px auto; width: 700px;}
    nav ul {width: 700px; height: auto; list-style: none; margin:0 auto; display:block;}
    nav ul li a {
    background: none repeat scroll 0% 0% #FFF;
    font-family: 'Open Sans',Arial,Helvetica,sans-serif;
    font-weight: 300;
    font-size: 18px;
    text-align: center;
    color: #717171;
    text-decoration: none;
    float: left;
    padding: 8px 0px;
    width: 106px;
    }
    
    nav ul li a:hover {background: #f1f1f1;}
    

    http://jsfiddle.net/Sb42u/1/

    【讨论】:

    • 没用,仍然没有居中。您的 jsfiddle 与您发布的代码不同,所以我将它们混合在一起。
    【解决方案4】:

    1。将导航栏居中:

    您只需将nav 中的margin: 3px 0; 更改为margin: 3px auto

    2。创建下拉菜单:

    首先,我建议您以这种方式更改您的标记:

    <nav>
        <ul>
           <li><a href="../help.html">HJEM</a></li>
           <li><a href="instructions.html">FORUM</a></li>
           <li>
                 <a href="instructions.html">DONER</a>
                 <ul class="submenu">
                    <li><a href="legal.html">SERVERE</a>
                    <li><a href="legal.html">FAQ</a></li>
                    <li><a href="legal.html">KONTAKT</a></li>
                 </ul>
           </li>
        </ul>
      </nav>
    

    然后你可以使用这个 css 类模拟一个下拉列表:

    nav ul li{ 
       position:relative; 
       float:left;
    }
    
    nav ul li ul.submenu {
        position: absolute;
        width: auto;
        display:none;
        top: 35px;
    }
    nav ul > li:hover > ul {
        left: 0;
        display: block;
    }
    

    在这里摆弄: http://jsfiddle.net/9Yg47/4/

    【讨论】:

    • @user3394828:仍然居中?你想让导航居中吗?你检查过小提琴吗?
    • 是的,我的意思是它仍然没有居中。我放弃了子菜单的想法,你的代码没有工作,仍然没有居中。
    猜你喜欢
    • 2014-02-22
    • 2017-02-25
    • 1970-01-01
    • 2021-07-08
    • 2017-05-08
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多