删除内联或内联块元素间间隙的方法有:去掉元素标签间的空格、使用负边距、在父元素上设置字体大小为零、省略结束标签。 在页面布局时,我们经常会使用到inline元素、inline-bloc
删除内联或内联块元素间间隙的方法有:去掉元素标签间的空格、使用负边距、在父元素上设置字体大小为零、省略结束标签。
在页面布局时,我们经常会使用到inline元素、inline-block元素,但无可避免都会遇到一个问题,那就是这些元素之间存在间隙(如下图),会导致一些布局上的问题,那么如何删除这些元素之间的间隙?下面我们就来介绍几种方法(以inline元素为例),希望对大家有所帮助。【相关视频教程推荐:HTML教程、CSS教程】
<div class="demo"> <span>我是一个span。</span> <span>我是一个span。</span> <span>我是一个span。</span> <span>我是一个span。</span> <span>我是一个span。</span> </div>
.demo{ width: 450px; height: 200px; margin: 10px auto; font-size: 20px; } .demo span{ background:#ddd; }
效果图:
去掉元素标签间的空格
元素间的间隙出现的原因是元素标签之间的空格(浏览器会将HTML中的换行符和空格解析为内容。),把空格去掉间隙自然就会消失。去掉元素标签间空格有以下几种方法:
方法一:
<div class="demo"> <span>我是一个span。</span><span>我是一个span。</span><span>我是一个span。</span><span>我是一个span。</span><span>我是一个span。</span> </div>
方法二:
<div class="demo"> <span>我是一个span。 </span><span>我是一个span。 </span><span>我是一个span。 </span><span>我是一个span。 </span><span>我是一个span。</span> </div>
方法三:使用HTML注释标签<!-- -->
使用HTML注释标签<!-- -->把元素间的空格注释掉,让浏览器不在解析空格。
<div class="demo"> <span>我是一个span。</span><!-- --><span>我是一个span。</span><!-- --><span>我是一个span。</span><!-- --><span>我是一个span。</span><!-- --><span>我是一个span。</span> </div>
效果图:
使用负边距
可以使用设置边距(margin)属性为负值来将元素移回原位,需要根据父级的字体大小进行负值的调整。
span{ margin-left: -6px; }
注:这在旧的IE(6和7)中是有问题的。
在父元素上设置font-size: 0;
空格是一个字符空间,因此将font-size设置为零也会使空间的大小为零。但是,为了显示其他元素,需要将子元素的字体大小设置回所需的大小。
.demo{ width: 400px; height: 200px; font-size: 0; } .demo span{ background:#ddd; font-size: 20px; }
省略结束标签
在HTML5中可以省略结束标签,进而删除标签间的空格。但为了兼容IE6/IE7,可以添加最后一个元素的结束标签。
<div class="demo"> <span>我是一个span。 <span>我是一个span。 <span>我是一个span。 <span>我是一个span。 <span>我是一个span。</span> </div>