居中菜单栏CSS / HTML

时间:2014-04-03 15:17:59

标签: html css web

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

谢谢!

处理链接的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;            
}

4 个答案:

答案 0 :(得分:2)

这是一个以菜单为中心的解决方案:

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;

}

答案 1 :(得分:0)

这是另一种可能性,具体取决于您正在寻找的内容。 这会对display:inline-blocka元素使用li

http://jsfiddle.net/jdWgE/

答案 2 :(得分:0)

您可以display: inline-block;使用<ul> text-align: center; parent nav{ text-align: center; } nav ul { display: inline-block; } ,如下所示:

{{1}}

希望这就是你需要的东西

DEMO http://jsfiddle.net/verber/fENS4/4/

答案 3 :(得分:0)

如果您不介意只支持识别和支持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
}

诀窍是将<nav>设置为使用弹性框显示,并指​​示它将其内容对齐到中间/中心。我删除了列表的float: left声明,因为不需要。

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