【问题标题】:How to remove space between list items in navigation (HTML / CSS)如何在导航中删除列表项之间的空格(HTML / CSS)
【发布时间】:2015-09-06 06:32:13
【问题描述】:

我在删除导航中 li 项目之间的空格时遇到问题,我已经为项目和锚(链接)设置了边距: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>

fiddle

【问题讨论】:

标签: html css


【解决方案1】:

这些空格实际上是由您的 html 中的空白引起的。

要解决,请将float: left 添加到您的&lt;li&gt; 标签中:

.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>

【讨论】:

    【解决方案2】:
    【解决方案3】:

    空格是由空格引起的。您应该确保每个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 专门用于解决使用浮动进行布局的问题。

    【讨论】:

    • 不,我认为最好的解决方案是使用弹性盒子。更重要的是,大多数时候这些东西是由服务器端 php/ruby 生成的,所以你最好不要包含空格(为了调试它很容易美化)。
    • 当然,flexbox 也可以工作(并且是一种更新的技术)。但我建议的是阻力最小的路径,因为 OP 的布局已经在使用 inline-block,这确实没有错。
    【解决方案4】:

    要删除导航项之间的空格,只需这样做:

    ul {
        font-size: 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-11
      • 2012-12-19
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      相关资源
      最近更新 更多