我正在设计一个网站,但在让菜单栏正确居中时遇到问题。我在网上做了很多研究,但似乎无法弄明白。有什么建议吗?
谢谢!
处理链接的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;
}
答案 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-block
和a
元素使用li
。
答案 2 :(得分:0)
您可以display: inline-block;
使用<ul>
text-align: center;
parent
nav{
text-align: center;
}
nav ul {
display: inline-block;
}
,如下所示:
{{1}}
希望这就是你需要的东西
答案 3 :(得分:0)
如果您不介意只支持识别和支持flexbox规范的现代浏览器,您可以利用它来发挥优势。您只需要更改nav
和nav 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
声明,因为不需要。