为什么这不会垂直对齐? div 左边的图片
Why won't this vertically align? Img to the left of div
虽然我已经成功使用了很多次,但我仍然无法使用垂直对齐。在这种情况下,我在左边有一个 img,在右边有一个 div,这是我的代码:
.review {
font-size: 1em;
}
.avatarImg {
float: left;
width: 25%;
}
.reviewBlock {
width: 75%;
float: left;
}
<div class="review">
<img class="avatarImg" src="http://via.placeholder.com/200x200" alt="">
<div class="reviewBlock"> <!-- misc elements --> </div>
</div>
我的 img 比我的 reviewBlock 短几个像素,所以我希望它可以向下移动而不必使用 margin-top。据我所知,已经建立了一个基线,请看这些图片。
我试过将 display:inline-block
放在 img 和 div 以及 vertical-align:middle
上,但它没有做任何事情。谁能解释这里发生了什么?非常感谢。
向两个元素添加 display: inline-block; vertical-align: middle;
将使它们对齐。
确保您也删除了 float
,否则这将不起作用
因为它们是 inline-block
我还删除了 2 之间的白色 space 通过评论连接它们 <!-- -->
.review {
font-size: 1em;
}
.avatarImg {
display: inline-block;
vertical-align: middle;
width: 25%;
}
.reviewBlock {
display: inline-block;
vertical-align: middle;
width: 75%;
}
<div class="review">
<img class="avatarImg" src="http://placehold.it/100/f00" /><!--
--><div class="reviewBlock">
Blaa blaa<br> Blaa blaa<br> Blaa blaa<br> Blaa blaa
</div>
</div>
尝试将父元素与 display:table 和 img 元素与 display:table-cell 和 vertical-align
您也可以使用 Flexbox:
.review {
display: flex; /* or "inline-flex" / displays flex-items (children) inline */
align-items: center; /* centers them vertically */
}
<div class="review">
<img class="avatarImg" src="http://via.placeholder.com/200x200" alt="">
<div class="reviewBlock">This text is vertically centered.</div>
</div>
虽然我已经成功使用了很多次,但我仍然无法使用垂直对齐。在这种情况下,我在左边有一个 img,在右边有一个 div,这是我的代码:
.review {
font-size: 1em;
}
.avatarImg {
float: left;
width: 25%;
}
.reviewBlock {
width: 75%;
float: left;
}
<div class="review">
<img class="avatarImg" src="http://via.placeholder.com/200x200" alt="">
<div class="reviewBlock"> <!-- misc elements --> </div>
</div>
我的 img 比我的 reviewBlock 短几个像素,所以我希望它可以向下移动而不必使用 margin-top。据我所知,已经建立了一个基线,请看这些图片。
我试过将 display:inline-block
放在 img 和 div 以及 vertical-align:middle
上,但它没有做任何事情。谁能解释这里发生了什么?非常感谢。
向两个元素添加 display: inline-block; vertical-align: middle;
将使它们对齐。
确保您也删除了 float
,否则这将不起作用
因为它们是 inline-block
我还删除了 2 之间的白色 space 通过评论连接它们 <!-- -->
.review {
font-size: 1em;
}
.avatarImg {
display: inline-block;
vertical-align: middle;
width: 25%;
}
.reviewBlock {
display: inline-block;
vertical-align: middle;
width: 75%;
}
<div class="review">
<img class="avatarImg" src="http://placehold.it/100/f00" /><!--
--><div class="reviewBlock">
Blaa blaa<br> Blaa blaa<br> Blaa blaa<br> Blaa blaa
</div>
</div>
尝试将父元素与 display:table 和 img 元素与 display:table-cell 和 vertical-align
您也可以使用 Flexbox:
.review {
display: flex; /* or "inline-flex" / displays flex-items (children) inline */
align-items: center; /* centers them vertically */
}
<div class="review">
<img class="avatarImg" src="http://via.placeholder.com/200x200" alt="">
<div class="reviewBlock">This text is vertically centered.</div>
</div>