【发布时间】:2017-03-02 14:05:32
【问题描述】:
我在 div 中有一个响应式背景图像。我想在它上面有一个两列的 flex 布局,其中左侧布局的图像高度为父 div 的 100%,宽度自动缩放,如响应图像。右边是一个以 flex 为中心的两行文本。
这是迄今为止我能得到的最接近的。但是 flex 不会拉伸以适应背景 div 图像,并且当浏览器调整大小时,左侧图像不会相应地缩放。
注意:不要在代码中指定以px为单位的宽高
.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>
【问题讨论】:
-
@Michael_B 很近,但不幸的是没有。我在左栏中创建了一个带有方形图像的 [jsfiddle] (jsfiddle.net/tgrs0uo4/4) 以进行说明。如您所见,方形图像不保持弹性框内图像的纵横比(1:1)
-
@Michael_B 更近了,但仍然缺少一些东西。图片不占用背景图片 div 的高度。理想情况下,图像高度应与背景图像 div 高度相同,同时保持图像自身的比例
-
只需从
.left容器中删除align-items: center:jsfiddle.net/tgrs0uo4/6