我在div中有响应的背景图像 . 我想在它上面有一个两列的flex布局,其中左侧布局的图像高度为父div的100%,宽度为自动缩放,如响应式图像 . 右边的部分是以flex为中心的两行文本 .
这是我到目前为止最接近的 . 但是,flex不会拉伸以适合背景div图像,并且左侧图像在浏览器调整大小时不会相应缩放 .
Note: None of the width and height in px should be specified in the code
.parent {
display: flex;
align-items: center;
}
.left {
height: 100%;
}
.right {
flex: 1;
background: blue;
}
<div style="position: relative;">
<img src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcTkyfCkzwQ7Lx4v3YRNao0lQgM-VkEj6iLWTHE8KqHF5tk4cl15WQ" style="width: 100%">
<div style="position: absolute; top: 0; bottom: 0; left: 0; right: 0;">
<div class="parent">
<div class="left">
<img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcRsxhzGxiYQU_vp2YlN1LTMxQsYMhFDqTZLwfqMylCwqIahCu00Mf_0aDQ">
</div>
<div class="right">
<p>
123
</p>
<p>
456
</p>
</div>
</div>
</div>
</div>
期望:
2 回答
从
parent
div中删除align-items: center;
.如果要居中对齐文本元素,请使用
padding
或position: relative/position: absolute
然后将
height: 100%;
应用于图像 .首先,我尝试将图像
aspect-ratio
保留在flexbox
的响应式设置中:从
parent
元素中删除align-items: center
(以便计算默认的stretch
) .将
flex: 1
添加到left
元素 .将
display: block
添加到left img
元素,以删除图像下面的inline
图像的特征空间(也可以将其执行到背景img
) . 同时给width: 100%
匹配响应宽度 .现在包装
right
的内容并将其absolute
相对于right
flex项目定位 - 这允许right
元素高度的高度由left img
确定 .要对齐右侧部分的内容,请使用另一个这样的弹性框:
见下面的演示:
所以我建议您使用
background-image
属性,如下所示: