【发布时间】:2020-10-22 21:01:53
【问题描述】:
.div1 {
display:inline;
background-color:blue;
}
.div2 {
display:inline;
background-color: orange;
}
.div3 {
display:inline-block;
background-color:red ;
}
.div4 {
display:inline-block;
background-color:greenyellow;
}
<div class="div1">
Lorem ipsum
</div>
<div class="div2">
Lorem ipsum
</div> <br>
<div class="div3">
Lorem ipsum
</div>
<div class="div4">
Lorem ipsum
</div>
</body>
这里有一张图片可以更好地说明我的问题。 PICTURE
我知道这可能是一个愚蠢的问题并且在很大程度上无关紧要,但我只是想知道为什么第一个 inline-element 会创建一个额外的 4px 宽度来覆盖背景颜色,而 inline-block 元素会创建相同的4px 宽度,但不会被背景色覆盖。
我知道这很可能与以下事实有关:行内元素不尊重宽度,但行内块元素尊重宽度。
有人知道为什么会这样吗?
【问题讨论】:
-
我相信这是因为
display: inline的顶部和底部边距和填充不被尊重(所以divs 相互对接)而display: inline-block是。 -
@disinfor 我不明白这如何回答这个问题?您能否指出我给出的答案?其中一个答案说 inline-block 像 inline-elements 一样设置默认空白。但是对于内联元素,额外的空白空间会被背景色覆盖,但对于内联块,它不会。所以我想知道为什么。这在问题的某个地方有解释吗?
-
@Ihatecontrolfreaks 这是对已接受答案的第三条(或第二条)评论。