HTML内联(行内)元素间的缝隙问题讲解

注意:以下效果用行内块元素展示,实际所有行内元素间都会存在类似的缝隙问题

1. 效果展示

<style>
    div{
        display: inline-block;
        background-color: cornflowerblue;
    }
</style>
<div >我是行内块1</div>
<div >我是行内块2</div>
<div >我是行内块3</div>

效果展示

可以看到行元素(包括行内块元素)之间有个小缝隙。

2. 产生原因

元素被当成行内元素排版的时候,元素之间的空白符(空格、回车换行等)都会被浏览器处理,根据white-space的处理方式(默认是normal,合并多余空白),原来HTML代码中的回车换行被转成一个空白符,所以元素之间就出现了空隙。这些元素之间的间距会随着字体的大小而变化,当行内元素font-size:16px时,间距为8px。

3. 解决方案

根据产生该问题的原因,当我们把上述例子的三个div写在一行那么间隙问题就会消失,但是写成一行难免影响代码的可读性以及优雅度。下面介绍几种其他比较方便的解决方法:

(1)父元素设置font-size为0,子元素单独再设置字体大小。
<div style="font-size: 0">
    <div style="font-size: 16px">我是行内块1</div>
    <div style="font-size: 16px">我是行内块2</div>
</div>
(2)改变其元素类型,使其不再是内联元素。例如让行内块元素设置浮动float(不过需要解决浮动可能带来的其他问题)或者给父元素加上display: flex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值