我在这个论坛上搜索了很多问题但它似乎没有帮助。我试图将导航栏放在中心位置,但是尽管大部分答案都是text-align = center;
,但这对我来说并不适用。
ASP.NET中的HTML代码:
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<!--[if lt IE 8]>
<script src ="http://ie7-js.googlecode.com/svn/version/2.1(beta2)/IE8.js"></script>
<![endif]-->
</head>
<body>
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Login</a></li>
<li><a href="#">Report</a></li>
<li><a href="#">Recent cases</a></li>
<li><a href="#">About</a></li>
</ul>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.core.js" type="text/javascript"></script>
<script type="text/javascript" src="js/scripts.js"></script>
</body>
</html>
CSS代码:
body {
font-family: helvetica, arial, sans-serif;
background: #e3e3e3;
text-align: center;
}
/* MENU */
#nav {
text-align: center;
background: #e5e5e5;
float: left;
margin: 0; padding: 0;
border: 1px solid white;
border-bottom: none;
}
#nav li a, #nav li {
text-align: center;
float: left;
}
#nav li {
text-align: center;
list-style: none;
position: relative;
}
#nav li a {
text-align: center;
padding: 1em 2em;
text-decoration: none;
color: white;
background: #292929;
background: -webkit-gradient(linear, left top, left 25, from(black), color-stop(4%, #3c3c3c), to(#292929));
border-right: 1px solid #3c3c3c;
border-left: 1px solid #292929;
border-bottom: 1px solid #232323;
border-top: 1px solid #545454;
}
#nav li a:hover {
background: #2a0d65;
background: -moz-linear-gradient(top, #11032e, #2a0d65);
background: -webkit-gradient(linear, left top, left bottom, from(#11032e), to(#2a0d65));
}
/* Submenu */
.hasChildren {
position: absolute;
width: 5px; height: 5px;
background: black;
right : 0;
bottom: 0;
}
#nav li ul {
display: none;
position: absolute;
left: 0;
top: 100%;
padding: 0; margin: 0;
}
#nav li:hover > ul {
display: block;
}
#nav li ul li, #nav li ul li a {
float: none;
}
#nav li ul li {
_display: inline; /* for IE6 */
}
#nav li ul li a {
width: 150px;
display: block;
}
/* SUBSUB Menu */
#nav li ul li ul {
display: none;
}
#nav li ul li:hover ul {
left: 100%;
top: 0;
}
#nav li ul
答案 0 :(得分:1)
确实,最简单的方法是使用text-align: center;
。您遇到的问题是<li>
标记是块级元素。因此,无法在外部text-align
元素上应用<ul>
(仅适用于内联元素),以便使内部<li>
元素居中。因此,您必须首先通过应用<li>
属性告诉display
标记的行为与内联元素相同:
标记:
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
风格:
ul {
margin: 0;
padding: 0;
text-align: center;
}
ul li {
display: inline-block; // or display: inline;
}
以下是关于jsfiddle的工作示例:http://jsfiddle.net/7MKdk/
答案 1 :(得分:0)
这是你的意思吗?
#nav li a, #nav li {
text-align: center;
float: left;
}
顺便说一下,尝试删除float:left部分。你的代码几乎让我疯狂。您应该添加ID和类。
答案 2 :(得分:0)
试试这个:
#nav{
position:absolute;
left:30%;
}
你可以移除浮动
答案 3 :(得分:0)
尝试使用完全margin:auto
的{{1}}并移除width
jsfiddle link
首先需要float:left
来计算float:left
的确切width
。然后我们需要ul
来使用float:none
答案 4 :(得分:-1)
试试这个:
#nav{
margin-left:10px; (Increase the px until the nav reach center)
}