如何删除导航中列表项目之间的空格(HTML / CSS)
我无法删除导航中的li项目之间的空间,我已经为item和anchor(链接)设置了margin:0px,但空间/间隙仍然存在。
我怎样才能删除这些空间?
/* navigation styles */
nav {
background: rgba(6, 19, 72, 1);
background: linear-gradient(to bottom, rgba(6, 19, 72, 1) 0%, rgba(15, 31, 91, 1) 100%);
}
.nav {
list-style: none;
margin: 0;
padding: 0;
text-align: center;
}
.nav li {
display: inline;
margin: 0px;
}
nav ul.nav {
width: 1120px;
margin: 0 auto;
min-width: 120px;
}
span.homeicon {
width: 35px;
height: 32px;
display: inline-block;
vertical-align: middle;
position: relative;
background-image: url('http://s16.postimg.org/cq68hbikx/home_icon.png');
background-size: cover;
}
.nav a {
display: inline-block;
padding: 10px;
width: 120px;
text-decoration: none;
color: white;
font-family: arial;
line-height: 30px;
height: 30px;
margin: 0px;
border: 1px solid #344da7;
border-top: none;
}
a.nav_home {
max-width: 50px;
width: 50px !important;
}
.nav a:hover {
background-color: #344da7;
height: 100%;
}
<nav>
<ul class="nav">
<li><a href="" class="nav_home"><span class="homeicon"></span></a></li>
<li><a href="">SPORTS</a></li>
<li><a href="">LIVE CASINO</a></li>
<li><a href="">SLOTS</a></li>
<li><a href="">POKER</a></li>
<li><a href="">PROMOTION</a></li>
<li><a href="">BANKING</a></li>
<li><a href="">AFFILIATE</a></li>
</ul>
</nav>
这些空间实际上是由html中的空白引起的。
要解决,请将float: left
添加到<li>
标记中:
.nav li {
float: left;
}
要看到它确实是HTML中的空格,请尝试删除它并测试:
.nav {
list-style: none;
margin: 0;
padding: 0;
text-align: center;
}
.nav li {
display: inline;
margin: 0px;
}
nav ul.nav {
width: 1120px;
margin: 0 auto;
min-width: 120px;
}
span.homeicon {
width: 35px;
height: 32px;
display: inline-block;
vertical-align: middle;
position: relative;
background-image: url('http://s16.postimg.org/cq68hbikx/home_icon.png');
background-size: cover;
}
.nav a {
display: inline-block;
padding: 10px;
width: 120px;
text-decoration: none;
font-family: arial;
line-height: 30px;
height: 30px;
margin: 0px;
border: 1px solid #344da7;
}
a.nav_home {
max-width: 50px;
width: 50px !important;
}
.nav a:hover {
background-color: #344da7;
height: 100%;
}
<nav>
<h1> With Whitespace </h1>
<ul class="nav">
<li><a href="" class="nav_home"><span class="homeicon"></span></a></li>
<li><a href="">SPORTS</a></li>
<li><a href="">LIVE CASINO</a></li>
<li><a href="">SLOTS</a></li>
<li><a href="">POKER</a></li>
<li><a href="">PROMOTION</a></li>
<li><a href="">BANKING</a></li>
<li><a href="">AFFILIATE</a></li>
</ul>
<h1> Without Whitespace </h1>
<ul class="nav">
<li><a href="" class="nav_home"><span class="homeicon"></span></a></li><li><a href="">SPORTS</a></li><li><a href="">LIVE CASINO</a></li><li><a href="">SLOTS</a></li><li><a href="">POKER</a></li><li><a href="">PROMOTION</a></li><li><a href="">BANKING</a></li><li><a href="">AFFILIATE</a></li>
</ul>
</nav>
尝试查看https://css-tricks.com/fighting-the-space-between-inline-block-elements/
你可能想尝试使用display: flex;
而不是https://css-tricks.com/snippets/css/a-guide-to-flexbox/
空格是由空格造成的。 你应该确保每个li
之间没有空格。
最好的办法是这样做IMO:
<ul class="nav"><!--
--><li><a href="" class="nav_home"><span class="homeicon"></span></a></li><!--
--><li><a href="">SPORTS</a></li><!--
--><li><a href="">LIVE CASINO</a></li><!--
--><li><a href="">SLOTS</a></li><!--
--><li><a href="">POKER</a></li><!--
--><li><a href="">PROMOTION</a></li><!--
--><li><a href="">BANKING</a></li><!--
--><li><a href="">AFFILIATE</a></li>
</ul>
当然,你可以改变你的整个布局使用浮动,但这并不是最好的方式,有些倒退。 inline-block
专门用于解决使用浮点数进行布局的问题。
上一篇: How to remove space between list items in navigation (HTML / CSS)
下一篇: What is this random extra space between these two elements(<li>)?