[英]How Do I Get My Navigation Bar To Stretch Across The Screen?
我在想要它们的位置有导航链接,但是我希望条形图拉伸页面的整个宽度。 基本上,我希望在屏幕的整个长度上都有一条蓝线,并使链接保持在原处。 我尝试过“ width:100%”,但是当我这样做时,链接再次变为垂直列表,而不是水平线。
.navbar { list-style-type:none; margin:0; padding:0; } .navbar2 { float:right; background-color:#1a75ff; } .navbar3 { display:block; padding:14px 16px; text-align:center; text-decoration:none; color:black; } li a.active { background-color: #0047b3; display:block; padding:14px 16px; text-align:center; text-decoration:none; color:white; }
<ul class="navbar"> <li class="navbar2"><a class="navbar3" href="#contactme">Contact Me</a></li> <li class="navbar2"><a class="navbar3" href="#appointment">Make An Appointment</a></li> <li class="navbar2"><a class="navbar3" href="#blog">Blog</a></li> <li class="navbar2"><a class="navbar3" href="#testimonials">Testimonials</a></li> <li class="navbar2"><a class="navbar3" href="#aboutme">About Me & My Job</a></li> <li class="navbar2"><a class="active" href="#home">Home</a></li>
我改用display: flex;
下面而不是像上面那样使用float
,lemme知道这是否正确:
.navbar { list-style-type:none; margin:0; padding:0; display: flex; } .navbar2 { background-color:#1a75ff; display: flex; justify-content: center; align-items: center; } .navbar3 { display:block; padding:14px 16px; text-align:center; text-decoration:none; color:black; } .navbar2.active { background-color: #0047b3; color:white; } li a.active { background-color: #0047b3; display:block; padding:14px 16px; text-align:center; text-decoration:none; color:white; }
<ul class="navbar"> <li class="navbar2"><a class="navbar3" href="#contactme">Contact Me</a></li> <li class="navbar2"><a class="navbar3" href="#appointment">Make An Appointment</a></li> <li class="navbar2"><a class="navbar3" href="#blog">Blog</a></li> <li class="navbar2"><a class="navbar3" href="#testimonials">Testimonials</a></li> <li class="navbar2"><a class="navbar3" href="#aboutme">About Me & My Job</a></li> <li class="navbar2 active"><a class="active" href="#home">Home</a></li> </ul>
您的意图是将width:100%
放置在正确的轨道上,但是其他样式的组合也会干扰:
li
浮起的项目是不必要的,并造成其他问题。 我通过在.navbar
应用text-align: right
来创建相同的效果 li
需要的项目是display: inline-block
来显示任意的。 否则,它们将假定容器的宽度,因为其中的a
内部将display: block
.navbar li
选择器(与a
元素的概念相同)简单地设置了li
的样式。 最后,我对.navbar
应用了背景以演示它是全宽的。 如果您希望它是蓝色的,只需更改背景颜色即可!
.navbar { display: block; width: 100%; list-style-type: none; margin: 0; padding: 0; background: #aaa; text-align: right; } .navbar li { display: inline-block; background-color: #1a75ff; } .navbar a { display: block; padding: 14px 16px; text-align: center; text-decoration: none; color: black; } .navbar a.active { background-color: #0047b3; display: block; padding: 14px 16px; text-align: center; text-decoration: none; color: white; }
<ul class="navbar"> <li><a href="#contactme">Contact Me</a></li> <li><a href="#appointment">Make An Appointment</a></li> <li><a href="#blog">Blog</a></li> <li><a href="#testimonials">Testimonials</a></li> <li><a href="#aboutme">About Me & My Job</a></li> <li><a class="active" href="#home">Home</a></li>
因为所有li元素都是浮动的,所以它隐藏了父元素的高度。 父元素也没有背景色。
这就是我要做的。
.navbar { list-style-type:none; margin:0; padding:0; width:100%; background-color:#1a75ff; display:block; text-align:right; } .navbar2 { display:inline-block; background-color:#1a75ff; } .navbar3 { display:block; padding:14px 16px; text-align:center; text-decoration:none; color:black; } li a.active { background-color: #0047b3; display:block; padding:14px 16px; text-align:center; text-decoration:none; color:white; }
<ul class="navbar"> <li class="navbar2"><a class="active" href="#home">Home</a></li> <li class="navbar2"><a class="navbar3" href="#aboutme">About Me & My Job</a></li> <li class="navbar2"><a class="navbar3" href="#testimonials">Testimonials</a></li> <li class="navbar2"><a class="navbar3" href="#blog">Blog</a></li> <li class="navbar2"><a class="navbar3" href="#appointment">Make An Appointment</a></li> <li class="navbar2"><a class="navbar3" href="#contactme">Contact Me</a></li> </ul>
您可以使用CSS flexbox将导航栏配置为延伸到任何屏幕宽度。 这可以通过在现有代码中添加几行CSS来完成:
ul.navbar {
list-style-type:none;
margin:0;
padding:0;
width:100%;
display:flex;
flex-direction:row-reverse;
}
li.navbar2 {
flex-grow:1;
align-self:center;
height:100%;
background-color:#1a75ff;
}
a.navbar3 {
display:block;
padding:14px 16px;
text-align:center;
text-decoration:none;
color:black;
}
li a.active {
background-color: #0047b3;
display:block;
padding:14px 16px;
text-align:center;
text-decoration:none;
color:white;
}
您可以在此处查看生成的导航栏: https : //codepen.io/aaronadler/pen/vzBOeN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.