我在使这个水平导航栏居中时遇到了一些问题。这是我的JSFiddle:http://jsfiddle.net/W796k/embedded/result/ 我正在寻找两件事: 1.如何在不放置指定宽度的情况下水平居中导航栏? 2.如何在'ul'中进一步添加更多'li',以便自动挤压所有'li',以便为导航栏中新增的'li'腾出空间?
我是否清楚了一切?问我是否需要更多信息。提前感谢大家。
这是我的代码:
<Doctype! html>
<html>
<head>
<title> horizontal dropdown menu </title>
<style type="text/css" media="screen">
a{
font-family: "verdana", sans-serif;
font-weight: bold;
}
nav ul{
list-style: none;
position: relative;
background: #efefef;
background: linear-gradient (top,#efefef,#bbbbbb);
background: moz-linear-gradient (top, #efefef,#bbbbbb);
background: webkit-linear-gradient (top,#efefef,#bbbbbb);
box-shadow: 0px 0px 5px rgba(0,0,0,0.5);
padding: 0 20px;
border-radius: 10px;
display: inline-table;
}
nav ul li{
display: inline-block;
border-right: 1px solid #fff;
}
nav ul li:hover{
background: #5b545f;
background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li a{
text-decoration: none;
color: #000;
padding: 20px 20px;
display: block;
}
nav ul li:hover a{
color: #ffffff;
}
nav ul ul{
background: #5f6975;
border-radius: 0; padding: 0;
position: absolute; top: 100%;
display: none;
}
nav ul li:hover > ul{
display: block;
}
nav ul ul li{
display: block;
border-top: 1px solid #6b727c;
border-bottom: 1px solid #575f6a;
border-right: 0;
position: relative;
}
nav ul ul li a{
padding: 10px 40px;
}
nav ul ul li a:hover{
background: #4b545f;
}
nav ul ul ul{
position: absolute; left: 100%; top: 0;
}
</style>
</head>
<body>
<nav>
<ul>
<li><a href="#"> Home </a></li>
<li><a href="#"> Works ↓ </a>
<ul>
<li><a href="#"> Photoshop </a></li>
<li><a href="#"> Illustrator </a></li>
<li><a href="#"> Web Design → </a>
<ul>
<li><a href="#"> HTML </a></li>
<li><a href="#"> CSS </a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#"> Downloads ↓ </a>
<ul>
<li><a href="#"> Softwares </a></li>
<li><a href="#"> Ebooks </a></li>
</ul>
</li>
<li><a href="#"> About Us </a></li>
<li><a href="#"> Contact </a></li>
</ul>
</nav>
</body>
</html>
答案 0 :(得分:1)
你可以使用
nav { text-align: center }
答案 1 :(得分:1)
IMO,
nav { margin: 0 auto;}
说明:&#34; 0&#34;将设置&#34; margin-top&#34; &安培; &#34;下边距&#34;为零。并且&#34; auto&#34;属性将设置左右边距,从而将导航设置为中心;
答案 2 :(得分:0)
你不能只使用:
nav { text-align: center }
在你的CSS中
答案 3 :(得分:0)
好吧,您可以使用表而不是列表。如果您正在使用列表,则给出宽度不会像您希望的那样设置添加的列表项。
1&amp; 2.使用桌子可以避免制作它的中心而不给出特定的宽度。给你的桌子增加一个宽度,即使你在桌子上添加一个额外的元素也没有问题。它将自动调整给定的宽度而不用扰乱你的布局。
答案 4 :(得分:0)
只需在样式表中使用这行代码即可。
nav {
text-align: center
}
答案 5 :(得分:0)
答案 6 :(得分:0)
text-align: center;
会为你带来魔力..
答案 7 :(得分:0)
以下将是css
*{
list-style: none;
margin:0;
padding: 0;
}
nav table{
border-spacing: 10px 0;
}
.make-block{
position:relative;
}
nav table td span{
clear:both;
text-decoration: none;
display: table-cell;
white-space: nowrap;
position:relative;
}
nav table td:hover{
background: #000;
color:#fff;
}
nav table td dl {
display: none;
position: absolute;
}
nav table td:hover dl{
display: block;
}
dd{
padding-right: 20px;
background: #fff;
overflow: hidden;
display: inline-block;
position:relative;
}
ul.l1 li{
clear: both;
font-weight:bold;
font-size:10px;
padding: 5px 0;
}
nav a{
text-decoration: none;
}
.l1{
display: table-cell;
padding: 6px;
white-space: nowrap;
}
以下是您可以使用的标记。
<nav>
<table>
<td>
<div class="make-block">
<span>a</span>
<dl>
<dd>
<ul class="l1">
<li><a href="#">b</a></li>
<li><a href="#">c</a></li>
</ul>
</dd>
</dl>
</div>
</td>
<td>
<div class="make-block">
<span>b</span>
<dl>
<dd>
<ul class="l1">
<li><a href="#">b</a></li>
<li><a href="#">c</a></li>
</ul>
</dd>
</dl>
</div>
</td>
</table>
</nav>
答案 8 :(得分:0)
a{
font-family: "verdana", sans-serif;
font-weight: bold;
}
nav ul li{
display: inline-block;
border-right: 1px solid #fff;
}
nav ul li:hover{
background: #5b545f;
background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%);
}
nav ul li a{
text-decoration: none;
color: #000;
padding: 20px 20px;
display: block;
}
nav ul li:hover a{
color: #ffffff;
}
nav ul ul{
background: #5f6975;
border-radius: 0; padding: 0;
position: absolute; top: 100%;
display: none;
}
nav ul li:hover > ul{
display: block;
}
nav ul ul li{
display: block;
border-top: 1px solid #6b727c;
border-bottom: 1px solid #575f6a;
border-right: 0;
position: relative;
}
nav ul ul li a{
padding: 10px 40px;
}
nav ul ul li a:hover{
background: #4b545f;
}
nav ul ul ul{
position: absolute; left: 100%; top: 0;
}
/* flexbox */
nav {
display: -webkit-flex;
display: flex;
-webkit-justify-content: center;
justify-content: center;
-webkit-align-items: center;
align-items: center;
width: 100%;
height: auto;
background-color: lightgrey;
}
nav ul {
background-color: cornflowerblue;
padding: 1rem;
margin: 1rem;
-webkit-align-self: center;
align-self: center;
}
/* || flexbox */
<nav>
<ul>
<li><a href="#"> Home </a></li>
<li><a href="#"> Works ↓ </a>
<ul>
<li><a href="#"> Photoshop </a></li>
<li><a href="#"> Illustrator </a></li>
<li><a href="#"> Web Design → </a>
<ul>
<li><a href="#"> HTML </a></li>
<li><a href="#"> CSS </a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#"> Downloads ↓ </a>
<ul>
<li><a href="#"> Softwares </a></li>
<li><a href="#"> Ebooks </a></li>
</ul>
</li>
<li><a href="#"> About Us </a></li>
<li><a href="#"> Contact </a></li>
</ul>
</nav>