我在无序列表中设置了一个简单的列表。我希望list元素跨越ul
的整个宽度,但我似乎无法弄清楚为什么我的方法不起作用。
我试图申请:
nav ul li {
margin: 0;
padding: 0;
}
但这没有任何改变。即使width:100%;
元素li
也不做任何事情。如何让列表跨越unordered list
的宽度?
.nav-container {
border-right: 1px solid #E4E2E2;
height: 100%;
width: 200px;
background-color: #f4f3f3;
}
.nav {
text-align: justify;
}
nav:after {
content: "";
display: table;
clear: both;
}
.nav-link {
display: block;
text-align: left;
color: #333;
text-decoration: none;
margin-left: 0px;
padding-left: 15px;
}
.nav-link:hover {
background-color: #333;
color: #f4f3f3;
}
.nav ul {
border: 1px solid red;
width: 100%;
padding: 0px;
}
.nav ul li {
margin-left: 5px;
list-style-type: none;
height: 25px;
}
.nav ul li a {
text-align: left;
padding: 5px;
color: #333;
text-decoration: none;
margin-left: 15px;
}
.nav li:hover a {
color: #f4f3f3;
}
/* QUERIES */
@media screen and (max-width: 540px) {
.nav-container {
width: 100%;
height: 100px;
background-color: #f4f3f3;
border-bottom: 0.5px solid #f4f3f3;
}
.nav-link {
padding: 10px;
}
.logo-holder {
overflow: hidden;
display: block;
margin: auto;
width: 40%;
}
.nav-container nav ul {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.logo-holder {
text-align: left;
}
#navigation-div {
background-color: #f4f3f3;
margin-top: 0;
}
.hide {
display: none;
}
.nav ul li {}
}

<div class="nav-container">
<div class="logo-holder">
<img class="user-select-none" src="test.jpeg" width="150px" height="150px" alt="temp" />
</div>
<div id="navigation-div">
<nav class="nav">
<ul class="nav-ul">
<li><a class="nav-link active" href="">Test 1</a></li>
<li><a class="nav-link " href="">Test 2</a></li>
<li><a class="nav-link" href="">Test 3</a></li>
</ul>
</nav>
</div>
</div>
&#13;
注意:您还可以看到当您将鼠标悬停在每个链接左侧的空白区域时,链接会变为白色。
修改: 道歉,忘记提及当我的屏幕调整大小时,我的垂直导航栏将转换为水平导航栏。我已更新我的代码以显示此内容。
答案 0 :(得分:0)
您需要从li和.nav-link中删除左边距:
.nav ul li,
.nav-link {
margin-left: 0;
}
请注意,您要删除.nav-link上的边距:
.nav-link {
display: block;
text-align: left;
color: #333;
text-decoration: none;
margin-left: 0px;
padding-left: 15px;
}
但你稍后会把它添加回去。
.nav-link {
text-align: left;
padding: 5px;
color: #333;
text-decoration: none;
margin-left: 15px;
}
有关样式故障排除的小提示 - 如果您正在使用Chrome,请打开开发人员控制台,选择您的元素并将“样式”标签更改为“已计算”,然后您将能够具体查看正在使用的样式应用于您正在使用的元素(然后追溯它们以找出应用它们的内容)。当你有多个样式声明在同一个元素上相互覆盖时,它会让你更容易排除故障:)
答案 1 :(得分:0)
您有margin-left: 15px
应用于.nav-link
,这会导致您的问题,只需将其更改为左边的填充并删除margin-left
上的.nav li ul
,请参阅此小提琴:
https://jsfiddle.net/f2fc0r1q/
答案 2 :(得分:0)
您的代码使用了一些重复,只需要稍微调整一下。
.nav-container {
background-color: #f4f3f3;
border-right: 1px solid #E4E2E2;
height: 100%;
width: 200px;
}
.nav {
text-align: justify;
}
.nav ul {
box-sizing: border-box;
border: 1px solid red;
width: 100%;
padding: 0;
}
.nav li {
box-sizing: border-box;
width: 100%;
list-style-type: none;
height: 25px;
}
.nav-link {
box-sizing: border-box;
display: block;
height: 100%;
width: 100%;
text-align: left;
color: #333;
text-decoration: none;
padding: 5px 5px 5px 15px;
line-height:15px;
}
.nav-link:hover {
background-color: #333;
color: #f4f3f3;
}
&#13;
<div class="nav-container">
<div id="navigation-div">
<nav class="nav">
<ul>
<li><a class="nav-link active" href="">Test 1</a></li>
<li><a class="nav-link " href="">Test 2</a></li>
<li><a class="nav-link" href="">Test 3</a></li>
</ul>
</nav>
</div>
</div>
&#13;
答案 3 :(得分:0)
就像.nav-link
和.nav ul li
具有margin-left
值一样简单。通过删除它们或使它们为0将为您提供所需的输出。
.nav-container {
border-right: 1px solid #E4E2E2;
height: 100%;
width: 200px;
background-color: #f4f3f3;
}
.nav {
text-align: justify;
}
.nav-link {
display: block;
text-align: left;
color: #333;
text-decoration: none;
margin-left: 0px;
padding-left: 15px;
}
.nav ul {
border: 1px solid red;
width: 100%;
padding: 0px;
}
.nav ul li {
width: 100%;
margin-left: 0;
list-style-type: none;
height: 25px;
}
.nav-link {
text-align: left;
padding: 5px;
color: #333;
text-decoration: none;
margin-left: 0;
}
.nav-link:hover {
background-color: #333;
color: #f4f3f3;
}
.nav li:hover a {
color: #f4f3f3;
}
<div class="nav-container">
<div id="navigation-div">
<nav class="nav">
<ul>
<li><a class="nav-link active" href="">Test 1</a></li>
<li><a class="nav-link " href="">Test 2</a></li>
<li><a class="nav-link" href="">Test 3</a></li>
</ul>
</nav>
</div>
</div>