html - <li> 和 <ul> 元素之间神秘的填充/边距

标签 html css xhtml

当我注意到 <li> 之间的差距时,我正在构建菜单和 <ul> .即使将 margin 和 padding 设置为 0 也不能解决它,我不知道它来自哪里。

我在下面的示例中隔离了这个问题。

呈现的代码:http://gyazo.com/a8051a862c08c4dce4ce0b44ab4b271b

代码:

<!DOCTYPE html>
<html>

<head>
   <style>
      div#container{
         display: inline-block;
         border: 5px solid #00ff00;
      } 

      ul{
         list-style: none;
         margin: 0px;
         padding: 0px;
         border: 5px solid #0000ff;

      }

      li{
         display: inline-block;
         border: 5px solid #ff0000;
         width: 30px;
         height: 30px;
         margin: 0px;
         padding: 0px;
      }
   </style>
</head>

<body>

<div id="container">
   <ul >
      <li></li><li></li>
   </ul>
</div>

</body>
</html>

有趣的是,如果我在 <li> 中写任何东西元素,差距消失。有人可以向我解释发生了什么以及我如何消除这个差距吗?

最佳答案

nathan 建议的是一个解决方案,这里是另一个,不使用 inline-block显示格式,因为它有时会产生问题 <ul>没有内容(如您的情况).....此演示使用 floats并且没有内容

DEMO

CSS

  li{
      display: block;
      border: 5px solid #CCC;
      width: 30px;
      height: 30px;
      margin: 0px;
      padding: 0px;
      float:left; //added this
     }
.clearfix   {clear:both;}

HTML

<div id="container">
   <ul ><li></li><li></li>
    <div class="clearfix"   ></div>
   </ul>
</div>

关于html - <li> 和 <ul> 元素之间神秘的填充/边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487951/

相关文章:

jquery - 在悬停时叠加图像?

html - 热点顶部的文本阻止热点响应

html - 使div不可见并在单击链接后使其可见

javascript - 在平板电脑上放大和放大时,如何阻止包含 Kendo UI dataviz 图表的 div 元素与其他元素重叠

jquery - zeroClipboard 复杂的css问题

javascript - Flash 影片上的跨浏览器下拉/弹出菜单

javascript - 干扰 .innerHTML 输出触发器

javascript - 如何在 html 中用视频在外部播放音频?

javascript - Tachyons - 如何在横向屏幕上显示无

html - CSS 边距问题