无法理解为什么<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
会有这种行为吗?
答案 0 :(得分:5)
img标记的行为类似于内联和bock元素,基于这个答案:Is <img> element block level or inline level?
这就是为什么你必须在div中使用inline-block在img上显示块。< / p>
答案 1 :(得分:4)
默认vertical-align
值为baseline
,它可以是文字的底线或图片的底行(img
元素是replaced element,{ {3}}),它会导致演示的第一行出现偏移。
为了解决此问题,您可以将vertical-align
设置为top
,或者像您说的那样img
设置为display: block
也可以。
答案 2 :(得分:2)
您可以通过添加float: left
或vertical-align:top
https://jsfiddle.net/foxhh0av/
div > div {
background: red;
height: 200px;
width: 19%;
text-align: center;
margin: 0 5% 5% 0;
display: inline-block;
float: left;
}
img {
height: 128px;
width: 128px;
display: /* "BLOCK" FIXES THE ISSUE */;
}
<div id="wrapper">
<div id="a1">
<img src='http://dfsm9194vna0o.cloudfront.net/1471693-0-Washingmachineforlaundry128.png' 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>
答案 3 :(得分:1)
只需在你的css中更改:
img {
height: 128px;
width: 128px;
display: block;
}
那应该解决它。
答案 4 :(得分:1)
您可以将vertical-align: top;
设置为您的子div(div&gt; div)。