HTML行内级元素之间的空格问题

HTML行内级元素之间的空格问题

1.为什么元素之间会产生空格?

在编写**行内级元素(包括inline-block元素)**的代码之间如果有空格(换行),在浏览器上就会显示元素之间有空格。

示例代码如下:

.box span {
  background-color: red;
}
<div class="box">
  <span>span1</span>
  <span>span2</span>
  <span>span3</span>
</div>

浏览器运行结果:

在这里插入图片描述

注意:

  • 不管我们在元素之间敲如多少空格,都会被解析成一个空格;
  • 空格本身就是一个字符,所以空格的大小是由父元素的font-size来决定的,父级元素设置的字体越大,空格越大;

2.如何去掉元素之间的空格呢?

  • 元素代码之间不留空格:元素产生空格的原因就是我们敲入了空格或者换行,解决方案一就是元素代码之间不留空格,弊端就是代码不美观并且可读性差。

    <div class="box">
      <span>span1</span><span>span2</span><span>span3</span>
    </div>
    
  • 注释掉空格:浏览器不会解析html代码的注释,将空格注释掉也可以消除元素之间的空格,弊端就是繁琐、不美观。

    <div class="box">
         <span>span1</span><!--
      --><span>span2</span><!--
      --><span>span3</span>
    </div>
    

    在这里插入图片描述

  • 设置父元素的font-size为0:空格的大小是由父元素的字体大小决定的,所以可以给父元素添加font-size: 0;,注意原来需要消除空格的元素要重新设置自己的font-size,要不然字体大小会继承父元素的,弊端就是添加了多余的css属性,并且该方法在Safari浏览器中不适用。

    .box {
      font-size: 0; /* 给父级元素设置字体大小 */
    }
    
    .box span {
      background-color: red;
      font-size: 16px; /* 防止字体属性继承 */
    }
    

在这里插入图片描述

  • 给元素添加浮动:其原理是添加浮动会触发BFC,元素之间生成结界,形成一个独立的渲染空间,元素与元素之间就不会留有空格了,是目前比较好的解决方案。

    .box span {
      float: left;
      background-color: red;
    }
    

    在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值