我创建了一个导航栏,我希望100%完成。
这是我的HTML代码,以便更清晰
<!DOCTYPE html>
<html lang="en">
<head id="Head1" runat="server">
<title>iPolice</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<asp:ContentPlaceHolder ID="head" runat="server" >
</asp:ContentPlaceHolder>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<ul id="nav" >
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Department</a></li>
<li><a href="#">Contact Us</a></li>
<li><a href="Login.aspx">Login</a></li>
</ul>
</head>
然而,尽管放宽:100%;它仍然保持不变。
我希望我的所有5个选择都能集中在一起并且像这样均匀分配。但是,如果我的宽度不是100%,我甚至无法做到。
这是我的导航栏的CSS
#nav {
position:absolute;
left:0%;
top:0%;
margin: 0px;
padding: 0;
border: 1px yellow;
border-bottom: none;
width:100%;
}
#nav li a, #nav li {
text-align: center;
float: left;
}
#nav li {
list-style: none;
position: relative;
}
#nav li a {
padding: 1em 2em;
text-decoration: none;
color: #5FFB17;
background: #292929;
background: -moz-linear-gradient(top, black, #3c3c3c 1px, #292929 25px);
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));
}
我也尝试将#navarbar的位置更改为亲戚。但是,导航栏的左侧,顶部位置不会像我的代码所写的那样是0%。我真的看不到任何让我的导航栏变得100%的东西。
我还尝试将导航栏嵌套在不同的CSS属性中,宽度也为100%
<div id="navbarwidth">
<ul id="nav" >
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Department</a></li>
<li><a href="#">Contact Us</a></li>
<li><a href="Login.aspx">Login</a></li>
</ul>
</div>
CSS
#navbarwidth {
width:100%;
position:absolute;
}
答案 0 :(得分:2)
正如icktoofay所说,你的#nav
元素占据了整个宽度,但是其中的元素向左浮动,导航没有背景,所以它看起来不是。这是一个修正:
移除li
和a
元素上的浮动并将其设置为display: inline-block
将背景渐变移至#nav
在text-align: center
#navbarwidth
在li
元素上设置最小宽度,使它们具有相似的宽度(非常长)
如果您不希望菜单在小屏幕上换行,请在#navbarwidth
或#nav
上设置最小宽度
#navbarwidth {
width:100%;
position:absolute;
text-align: center;
}
#nav {
background: #292929;
background: -moz-linear-gradient(top, black, #3c3c3c 1px, #292929 25px);
background: -webkit-gradient(linear, left top, left 25, from(black), color-stop(4%, #3c3c3c), to(#292929));
position:absolute;
left:0%;
top:0%;
margin: 0px;
padding: 0;
border: 1px yellow;
border-bottom: none;
width:100%;
}
#nav li a, #nav li {
text-align: center;
display: inline-block;
min-width: 70px;
}
#nav li {
list-style: none;
}
#nav li a {
padding: 1em 2em;
text-decoration: none;
color: #5FFB17;
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));
}
答案 1 :(得分:1)
问题很可能是因为您的导航栏位于宽度有限的div内。因此,将导航栏宽度设置为100%只会让它填充它所在的div(而不是整个页面)。
如果确实如此,只需将导航栏从父div中取出或以某种方式调整父div。 (即使其居中,或使其宽度更大)
答案 2 :(得分:1)
您的导航栏 占用了所有水平空间 - 就是这样
这些问题有相当明显的解决方案:
项目仍然不会居中,因为您正在进行float: left
,但这是一个不同的问题。