如何删除导航中列表项目之间的空格(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专门用于解决使用浮点数进行布局的问题。

链接地址: http://www.djcxy.com/p/89245.html

上一篇: How to remove space between list items in navigation (HTML / CSS)

下一篇: What is this random extra space between these two elements(<li>)?