如何去除span之间的间隙bug

不知道大家有没有这样的经历,我们把2个span写在一起的时候,在页面上会发现他们之间有一段间隙,这是什么原因呢?先不要着急往下看我的解决方法,自己先想一下,也许你想到的比我的方法会更好。

先上一张效果图:

如何去除span之间的间隙bug

HTML代码:

1
2
3
4
<div class="wrap">
    <span>Hello,</span>
    <span>世界</span>
</div>

CSS代码:

1
2
3
4
5
6
7
.wrap {
/* font-size: 0; */
background: blue;
}
span {
background: red;
}

这里我并没有对span写任何样式,只是加了一个背景颜色,但是为啥会有空隙呢?这是因为我们习惯写完一个元素标签之后就换行,所以那个间隙就是那个”换行”,当然空格也会造成同样效果。那要怎么解决这个问题呢?第一个就是去掉空格或者换行,有时候是最简单的方法有时候也是最麻烦最笨的方法(这里要注意:在火狐或者safari下还会有上下空隙,所以这个还是蛋疼的方法,同样下面那个font-size为0的方法也会有上下空隙,设置浮动和设置flex的方法就比较好,没有上下间隙)

最笨的办法,将span写在一行:

1
2
3
4
5
<div class="wrap">

        <span>你好</span><span>你好啊</span>

</div>

效果图:

如何去除span之间的间隙bug

有没有其他方法呢?当然是有的,特别声明:以下介绍的方法HTML代码结构都是

1
2
3
4
5
6
7
<div class="wrap">

        <span>你好</span>

        <span>你好啊</span>

</div>

这里推荐三种方法,具体的来看一下

第一种:原理就是讲font-size为0之后,把那个空格字体大小设置为0就看不到了

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
.wrap {

            font-size: 0;

            background: blue;

}

 span {

            background: red;

            font-size: 16px;

 }</pre>
<h2>第二种方法:原理:利用浮动实现</h2>
<strong>CSS代码:</strong>
[cc lang="html"].wrap {

            background: blue;

            overflow: hidden;

 }

 span {

            background: red;

            font-size: 16px;

            float: left;

 }

第三种方法:原理利用display:inline-flex/flex,注意都是设置在父元素上,inline-flex的话父元素就不是100%宽了,flex还是100%宽,而且flex的兼容性大家也知道,所以推荐在移动端使用

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
.wrap {

            background: blue;

            display:flex;

            overflow: hidden;

 }

 span {

            background: red;

 }

结束语

当然除了上文码云笔记介绍的去除span间隙方法外,一定还有更好的方法,暂时就写这么多,小伙伴们有黑科技的欢迎下方留言。

未经允许不得转载:码云笔记 » 如何去除span之间的间隙bug
喜欢(0) 打赏

评论抢沙发

评论前必须登录!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

在线客服

在线客服

  • 扫描二维码,微信联系 扫描二维码,微信联系