不能让我的头周围为什么<img>
内<div style="display: inline-block">
推动div
从顶部下降?
HTML
<div id="wrapper">
<div id="a1">
<img src='...' alt=""/>
</div>
<div id="a2">
</div>
<div id="a3">
</div>
<div id="a4">
</div>
<div id="a5">
</div>
<div id="a6">
</div>
<div id="a7">
</div>
<div id="a8">
</div>
</div>
CSS
div > div {
background: red;
height: 200px;
width: 19%;
text-align: center;
margin: 0 5% 5% 0;
display: inline-block;
}
img {
height: 128px;
width: 128px;
display: /* "BLOCK" FIXES THE ISSUE */;
}
编辑
将img
设置为display: block
可修复此问题。但是谁能解释一下为什么没有display: block
会有这样的行为呢?
5条答案
按热度按时间8yoxcaq71#
默认的
vertical-align
值是baseline
,它可以是文本的底线或图像的底线(img
元素是replaced element,inline* level),这会导致演示第一行的偏移。为了解决这个问题,你可以将
vertical-align
设置为top
,或者像你说的将img
设置为display: block
也可以。xa9qqrwz2#
img标签的行为就像一个inline和bock元素,基于这个答案:Is element block level or inline level?
这就是为什么你必须在一个带有inline-block的div中的img上显示block。
pinkon5k3#
您可以通过添加
float: left
或vertical-align:top
来解决此问题https://jsfiddle.net/foxhh0av/
k10s72fa4#
在你的css中修改一下:
应该能修好
brvekthn5#
您可以将
vertical-align: top;
设置为子div(div > div)。