我有一个导航栏,它占用了桌面上的所有宽度,但在移动的上却没有
超文本标记语言:
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Dev Log</a></li>
<li><a href="#">Credits</a></li>
</ul>
</nav>
CSS:
* {
box-sizing: border-box;
}
body, html {
margin: 0 auto;
padding: 0;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
background-color: #7AE7C7;
text-align: center;
}
nav{
background-color: #0b4e2d;
font-size:18px;
padding:6px;
margin: 0;
width: 100vw;
}
ul {
list-style: none;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px;
position: relative;
color: white;
margin-left: 15px;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
}
ul a {
color: white;
text-decoration: none;
}
ul a:hover {
text-decoration: underline;
}
我尝试使用100%宽度和100%大众的导航和ul,但它没有工作。似乎只有当一个元素在它下面时才会发生
2条答案
按热度按时间e3bfsja21#
我没发现什么问题,但我把它清理了一下。
nzkunb0c2#
好的,在你的代码中,你试图让导航中的元素占据整个宽度。首先,最好使用宽度:100%在你的CSS导航。其次,你应该正确地重新构造你的css代码,position属性应该在最上面,因为css也会按照特定的顺序分配样式,所以最好把一些css属性放在另一个之前,以便正确地添加样式,例如
/* 这只是一个结构良好的css代码的例子 */
现在主要解决这个问题:如果你的nav元素,也就是父元素,有一个100%的宽度,ul也将被限制到其父元素的宽度,所以如果你的nav元素有一个90%的with,你设置ul的宽度为100%,它将占据其父元素的全部90%,而不是页面的100%,因为在正常情况下它被限制到其父元素,我只是先把这件事说清楚。现在,要设置ul中的元素为全宽,因为display:flex;已经被调用了,你只需要分配justify-content:center;在ul的样式中,在flex-wrap之后:wrap; style,这使得元素在任何设备上移动页面的中心,如果宽度已经设置为100%,然后你会使用gap,padding,margin等给它们间距,你也可以使用justify-content:间隔;以自动地在UL中的元素之间给予给予相等的间隔,而不必真正设置间隙或余量。