行内元素 padding和margin问题

看到一个面试题 关于行内元素span的


    <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        span {
            padding: 100px;
            border: 1px solid red;
        }
    </style>
<body>
    <span>1</span>
    <span>2</span>
</body>

我当时就笑了还有这种题? 送分的?

我想的结果:


image.png

实际结果:


image.png

我擦! 啪啪啪打脸!

为什么padding-top被无视了?
提出这个疑问后我又被打脸了!

    <style>
        * {
            padding: 0;
            margin: 0;
        }
        
        span {
            padding: 100px;
            border: 1px solid red;
        }
      div{
          border: 1px solid red;
      }
    </style>
<body>
    <span>1</span>
    <span>2</span>
    <div>3</div>
</body>
image.png

其实span是不支持padding-top、padding-bottom,不过奇怪的是既然padding不支持那为什么边框显示是有padding-bottom呢?
查了好多文章 结果只得到了一句话 行内不可替换元素padding会对边框产生影响!

我擦 不可替换元素 老子干了不到十年前端没听过啊?

是的官方英文文档和高程上都有说过

span、a属于不可替换元素
input属于可替换元素

padding、margin针对不可替换元素 padding-top、padding-bottom和margin-top、margin-bottom无效。。。无效。。。

哈哈 总结一下多读书是有用的!

您的点赞是我继续下去的动力,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容