【问题标题】:Centering Menu Bar CSS/HTML居中菜单栏 CSS/HTML
【发布时间】:2014-04-03 23:33:45
【问题描述】:

我正在设计一个网站,但在让菜单栏正确居中时遇到问题。我在网上做了很多研究,但似乎无法弄清楚。有什么建议吗?

谢谢!

处理链接的html代码。

<nav>   
        <ul>
            <li><a href = "index.php">Home</a></li>
            <li><a href = "shorthornHerdsires.php">Shorthorn Herdsires</a></li>
            <li><a href = "shorthornCows.php">Shorthorn Cows</a></li>
            <li><a href = "herefordHerdsires.php">Hereford Herdsires</a></li>
            <li><a href = "bullSale.php">Bull Sale</a></li>
            <li><a href = "cowSale.php">Cow Sale</a></li>
            <li><a href = "history.php">History</a></li>
            <li><a href = "contact_process.php">Contact</a></li>
        </ul>
</nav>

这是我的 CSS 样式表。

nav{
    display: block;
    width: 100%;
    overflow: hidden;
}

nav ul {
    padding: .7em;
    float: left;
    list-style: none;
    background: #a4d25d;
    box-shadow: 0 1px 0 rgba(255,255,255,.5), 0 2px 1px rgba(0,0,0,.3) inset; 
    border: 3px solid black;
    /* added*/


}
nav li {
    float:left;
}

nav a {
    float:left;
    padding: .8em .7em;
    text-decoration: none;
    color: black;
    text-shadow: 0 1px 0 rgba(255,255,255,.5);
    font: bold 1.1em/1 'trebuchet MS', Arial, Helvetica;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-width: 1px;
    border-style: solid;
    border-color: #black #BF7530;
    background: #FF8700;
 }

nav a:hover, nav a:focus {
    outline: 0;
    color: #black;
    text-shadow: 0 1px 0 rgba(0,0,0,.2);
    background: #FFDB73;
}

nav a:active {
    box-shadow: 0 0 2px 2px rgba(0,0,0,.3) inset;
}

nav li:first-child a {
    border-left: 0;
    border-radius: 4px 0 0 4px;            
}

nav li:last-child a {
    border-right: 0;
    border-radius: 0 4px 4px 0;            
}

【问题讨论】:

  • 你能描述一下你想要的样子吗? “正确居中”可能意味着许多不同的东西。
  • 喜欢这个? jsfiddle.net/TLVhe
  • 当然,我希望它水平居中。目前,菜单位于屏幕左侧。
  • 浮动元素不能居中。
  • 我建议从该示例开始并对其进行调整以获得所需的外观(颜色、边框、填充...)。

标签: html css web


【解决方案1】:

这是一种使您的菜单居中的解决方案:

http://codepen.io/anon/pen/BuqlA/

nav{
    display: block;
    width: 100%;
    overflow: hidden;
    text-align: center;
}

nav ul {
    padding: .7em;
    list-style: none;
    background: #a4d25d;
    box-shadow: 0 1px 0 rgba(255,255,255,.5), 0 2px 1px rgba(0,0,0,.3) inset; 
    border: 3px solid black;

    display: inline-block;

}

【讨论】:

    【解决方案2】:

    这是另一种可能性,具体取决于您要查找的内容。 这将display:inline-block 用于ali 元素。

    http://jsfiddle.net/jdWgE/

    【讨论】:

    • 谢谢@andi!!我解决了这个问题。
    【解决方案3】:

    您可以使用将display: inline-block; 应用到&lt;ul&gt;text-align: center;parent,如下所示:

    nav{
        text-align: center;
    }
    
    nav ul {
        display: inline-block;
    }
    

    希望这是你所需要的

    演示在这里http://jsfiddle.net/verber/fENS4/4/

    【讨论】:

      【解决方案4】:

      如果您不介意只支持能够识别和支持 flexbox 规范的现代浏览器,那么您可以利用它来发挥自己的优势。只需更改navnav ul 的样式即可:

      nav{
          width: 100%;
          display: flex;
          justify-content: center;
      }
      
      nav ul {
          padding: .7em;
          display: block;
          overflow: hidden;
          list-style: none;
          background: #a4d25d;
          box-shadow: 0 1px 0 rgba(255,255,255,.5), 0 2px 1px rgba(0,0,0,.3) inset; 
          border: 3px solid black
      }
      

      诀窍是设置&lt;nav&gt; 使用flexbox 显示,并指​​示其将其内容对齐到中间/中心。我已经删除了列表的 float: left 声明,因为这不是必需的。

      http://jsfiddle.net/teddyrised/z6KVk/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-16
        • 2014-03-08
        • 1970-01-01
        • 1970-01-01
        • 2016-12-20
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多