我想将图像放在两段文字的左侧,使文字相对于图像的高度垂直居中。
<div class="wrap">
<img src="https://i.imgur.com/Yako69m.jpg" />
<div class="text">
<p>line1</p>
<p>line2</p>
</div>
</div>
答案 0 :(得分:0)
使用-ve value
margin-top.
margin-top: -12%;
但是,您还必须注意媒体查询。使用%
代替PX
。希望这会解决。
答案 1 :(得分:0)
以下是使用CSS table-cells进行此操作的一种方法。
对于HTML:
<div class="wrap">
<div class="img-panel">
<img src="https://i.imgur.com/Yako69m.jpg" />
</div>
<div class="text">
<p>line1</p>
<p>line2</p>
</div>
</div>
将图片包裹在div
中,与您对包裹div.text
元素的p
所做的相似。
应用以下CSS:
.wrap {
display: table;
width: 80%; /* optional */
margin: 0 auto; /* optional if you want to center wrapper */
}
.img-panel, .text {
display: table-cell;
border: 1px solid blue;
}
.img-panel {
width: 20%;
vertical-align: top;
}
.img-panel img {
width: 100%;
display: block;
}
.text {
vertical-align: middle;
}
.text p {
background-color: yellow;
}
将display: table
应用于包装器,然后display: table-cell
应用于两个子div
。
使用vertical-align: top
属性将图像设置为其父元素的顶部,然后使用vertical-align: middle
将段落放置在右表格单元格的中间位置。
只要图像比右边的内容更高,您就可以获得所需的布局。
答案 2 :(得分:0)
答案 3 :(得分:0)
使用CSS flexbox(可能希望添加供应商前缀以获得更好的浏览器支持):
.wrap {
display: flex;
align-items: center;
}
img {
width:20%;
}