CSS 之inline/inline-block 元素间距问题

把元素的display属性值设置为inline或者inline-block,在该类元素连续出现的时候,你会发现每个元素之间会存在一些空隙。如下图:

inline情况下.png

inline-block情况下.png

贴上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style type="text/css">
    body{
        font-size: 18px;
    }
    .wrap{

    }
    .wrap div{
        width: 200px;
        height: 200px;
        color: white;
        background-color: #42b983;
        display: inline-block;
        /*inline同理*/
      }
</style>
</head>
<body>
<div class="wrap">
    <div>这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
    <div >这是一些文字</div>
</div>
</body>
</html>

导致这个问题的原因是:在HTML代码里,空格也会占位。class为wrap的元素继承了body font-size:18px的这个属性值。在非0的font-size值的情况下,间隙就会形成。解决该问题的方法有二:

  • 压缩HTML,把所有空格去掉
  • 为class为wrap的元素设置font-size :0 (但需要把其子元素的该属性重写成正常值)

贴上代码:

 <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>Document</title>
            <style type="text/css">
                body{
                    font-size: 18px;
                }
                .wrap{
                    font-size: 0;
                }
                .wrap div{
                    width: 200px;
                    height: 200px;
                    color: white;
                    background-color: #42b983;
                    display: inline-block;
                    font-size: 18px;
                    /*inline同理*/
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
                <div>这是一些文字</div>
            </div>
        </body>
    </html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容