html - 菜单 css 元素之间的等效距离

标签 html css

我做了一个菜单,但我不明白为什么元素之间没有相等的距离,如果你能在图像中看到一些元素是好的但有些不是。 这是菜单: enter image description here

我处理的代码:

HTML:

<body style="background:#F0F0F0">
   <div class="nav" >
     <ul>
        <li><element>&#9917 </element> </li>
        <li><a href="#" id="navItem"> Home </a></li> 
        <li><a href="#" id="navItem"> Mail </a></li>
        <li><a href="#" id="navItem"> Team </a></li>  
        <li><a href="#" id="navItem"> Matches </a></li> 
        <li><a href="#" id="navItem"> Club </a></li>
        <li><a href="#" id="navItem"> Multimedia </a></li> 
        <li><a href="#" id="navItem"> Fans </a></li>
        <li><a href="#" id="navItem"> Shop </a><li>
        <li><a href="#" id="navItem"> More </a>
          <ul>
            <li><a href="#">Messenger</a></li>
            <li><a href="#">Games</a></li> 
            <li><a href="#">Facebook</a></li>            
         </ul>
      </li>
   </ul>
  </div>
</body>

CSS:

  .nav{
        background-color:#660099;
        color:white; 
        height:20px;
        margin-top: 10px;
        text-align: center;
      }
    .nav ul {
        list-style: none;
        text-align: center;
        padding:0;

     }

    .nav a {
        display: block;
     }
    .nav li li{
        width: 70px;
        height: 30px;
        display: inline-block;
        font-size: 15px;
        background-color: #FFFFFF;
        padding-left: 0;
        text-align: left;
        margin-left: 10px;
        }

    .nav li {
        width: 70px;
        height: 50px;
        display: inline-block;
        float: left;
        margin-left: 1px;
        text-align: center;

     }
     .nav li ul {
        position: absolute;
        display: none;
        width: inherit;
     }

     .nav li:hover ul {
        display: block;
     }

如何解决?

最佳答案

一个原因可能是因为您缺少结尾 </li><li><a href="#" id="navItem"> Shop </a><li>

.nav{
  background-color:#660099;
  color:white; 
  height:20px;
  margin-top: 10px;
  text-align: center;
}
.nav ul {
  list-style: none;
  text-align: center;
  padding:0;

}

.nav a {
  display: block;
}
.nav li li{
  width: 70px;
  height: 30px;
  display: inline-block;
  font-size: 15px;
  background-color: #FFFFFF;
  padding-left: 0;
  text-align: left;
  margin-left: 10px;
}

.nav li {
  width: 70px;
  height: 50px;
  display: inline-block;
  float: left;
  margin-left: 1px;
  text-align: center;

}
.nav li ul {
  position: absolute;
  display: none;
  width: inherit;
}

.nav li:hover ul {
  display: block;
}
a{
  color:white;
}
	<div class="nav" >
	<ul>
	<li><element>&#9917 </element> </li>
	<li><a href="#" id="navItem"> Home </a></li> 
	<li><a href="#" id="navItem"> Mail </a></li>
	<li><a href="#" id="navItem"> Team </a></li>  
	<li><a href="#" id="navItem"> Matches </a></li> 
	<li><a href="#" id="navItem"> Club </a></li>
	<li><a href="#" id="navItem"> Multimedia </a></li> 
	<li><a href="#" id="navItem"> Fans </a></li>
	<li><a href="#" id="navItem"> Shop </a></li> 
	<li><a href="#" id="navItem"> More </a>
	   <ul>
	      <li><a href="#">Messenger</a></li>
	      <li><a href="#">Games</a></li> 
	      <li><a href="#">Facebook</a></li>           
	   </ul>
	</li>
	</ul>
	</div>

我使用 >.nav ul > li获得第一级li s 在 ul 中与父级 .nav .如果我使用 .nav ul li它会得到所有的lis在 ul 中,包括看起来像这样的 child :<li><a href="#">Messenger</a></li> .您只需要菜单顶层的空格,这就是我使用 > 的原因. about the >

更好的例子,看起来更均匀的空间:

.nav{
  background-color:#660099;
  color:white; 
  height:20px;
  margin-top: 10px;
  text-align: center;
}
.nav ul {
  list-style: none;
  text-align: center;
  padding:0;

}

.nav a {
  /*display: block;*/
  text-align: center;
  color:white;
}
.nav li li{
  width: 70px;
  /*height: 30px;*/
  display: inline-block;
  font-size: 15px;
  background-color: #FFFFFF;
  padding-left: 0;
  /*text-align: left;*/
  /*margin-left: 10px;*/
}

.nav ul > li {
  display: inline-block;
  float: left;
  margin-left: 10px;

}
.nav li ul {
  position: absolute;
  display: none;
  width: inherit;
}

.nav li:hover ul {
  display: block;
}
	<div class="nav" >
	<ul>
	<li><element>&#9917 </element> </li>
	<li><a href="#" id="navItem"> Home </a></li> 
	<li><a href="#" id="navItem"> Mail </a></li>
	<li><a href="#" id="navItem"> Team </a></li>  
	<li><a href="#" id="navItem"> Matches </a></li> 
	<li><a href="#" id="navItem"> Club </a></li>
	<li><a href="#" id="navItem"> Multimedia </a></li> 
	<li><a href="#" id="navItem"> Fans </a></li>
	<li><a href="#" id="navItem"> Shop </a></li> 
	<li><a href="#" id="navItem"> More </a>
	   <ul>
	      <li><a href="#">Messenger</a></li>
	      <li><a href="#">Games</a></li> 
	      <li><a href="#">Facebook</a></li>           
	   </ul>
	</li>
	</ul>
	</div>

您还可以像这样玩转边距:

  .nav ul > li {
      display: inline-block;
      float: left;
      margin-left: 20px;
      margin-right: 20px;

   }

关于html - 菜单 css 元素之间的等效距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36239799/

相关文章:

javascript - 如何在 HTML 中播放多首随机歌曲

html - float 元素旁边的列表样式

css - 具有 Web 组件的应用程序的全局 CSS

javascript - jQuery:滚动时展开 div

javascript - skrollr.js 响应能力

css - Ie7下拉菜单悬停问题

html - 将右侧边栏背景拉伸(stretch)到屏幕的右边缘

java - 自定义光标行为

javascript - 如何使用 Bootstrap 选项卡?

css - 你如何按百分比反转颜色?