处理行内元素行内块元素中间空隙

目录

方案一:源码中直接就写成一行

方案二:改变HTML结构 (推荐)

方案三:用注释 (推荐)

方案四:margin设为负值;

方案五:font-size: 0

方案六:letter-spacing设置为负值;

方案七:给行内块元素添加float属性(浮动)

会出现间隙的原因,其实是行内元素、行内块元素标签之间的换行或其他格式不可见字符带来的影响。

案例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        span {
            font-size: 10px;
            background-color: antiquewhite;
        }
    </style>
</head>
<body>
    <span>111</span>
    <span>222</span>
    <span>333</span>
</body>
</html>

效果:

目的效果:

这个距离是父级字体大小的1/3

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        body {
            font-size: 100px;
        }
        span {
            font-size: 20px;
            background-color: antiquewhite;
        }
    </style>
</head>
<body>
    <span>111</span>
    <span>222</span>
    <span>333</span>
</body>
</html>

 63b83e4d636f89c620167f2190fca87d.png

方案一:源码中直接就写成一行

<div class = "box">
    <span>你好</span><span>你好</span><span>你好</span>
  </div>

方案二:改变HTML结构 (推荐)

<div class = "box">
    <span>你好</span
      ><span>你好</span
        ><span>你好</span>
  </div>

方案三:用注释 (推荐)

<div class = "box">
    <span>你好</span><!-- 消除空格 
    --><span>你好</span><!-- 消除空格 
    --><span>你好</span>
  </div>

方案四:margin设为负值;

<style>
    .box span{
      margin-left:-0.33333333em;
    }
</style>

<body>
  <div class = "box">
    <span>你好</span>
    <span>你好</span>
    <span>你好</span>
  </div>
</body>

方案五:font-size: 0

给父元素设置 font-size : 0 后,需要重新给子元素设置字号

<style>
    .box{
      font-size:0;
    }
    .box>span{
      font-size:16px;
    }
  </style>

<body>
  <div class = "box">
    <span>你好</span>
    <span>你好</span>
    <span>你好</span>
  </div>
</body>

这样处理在Firexfox,chrome等浏览器下是达到了效果,可是在Safari下可问题依然存在

方案六:letter-spacing设置为负值;

将letter-spacing设为-0.333333em即可。但是与font-size一样,改变letter-spacing时会改变内部子元素的间隙,需要在子元素内手动进行矫正。

<style>
    .box{
      letter-spacing: -0.333333em;
    }
    .box>span{
      letter-spacing: 0;
    }
  </style>

<body>
  <div class = "box">
    <span>你好</span>
    <span>你好</span>
    <span>你好</span>
  </div>
</body>

方案七:给行内块元素添加float属性(浮动)


参考:

HTML(四)解决行内元素/行内块元素中间空隙_喝啤酒的猫的博客-CSDN博客_行内块元素之间的空隙

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值