【问题标题】:Fit image with height 100% in flex在 flex 中以 100% 的高度拟合图像
【发布时间】: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)
  • 试试这个:jsfiddle.net/tgrs0uo4/5
  • @Michael_B 更近了,但仍然缺少一些东西。图片不占用背景图片 div 的高度。理想情况下,图像高度应与背景图像 div 高度相同,同时保持图像自身的比例
  • 只需从.left 容器中删除align-items: centerjsfiddle.net/tgrs0uo4/6

标签: html image css flexbox


【解决方案1】:

删除 align-items: center; 来自parent div。

如果要居中对齐文本元素,请使用paddingposition: relative/position: absolute

然后申请 height: 100%; 图片。

【讨论】:

  • 我已经更新了fiddle中的代码。浏览器调整大小时,我看不到左侧图像按比例缩放。并且 flex(或左图)高度不占背景图高度的 100%。
猜你喜欢
  • 2018-07-25
  • 2014-01-23
  • 1970-01-01
  • 2021-02-14
  • 2018-01-26
  • 1970-01-01
  • 2010-10-08
  • 2017-07-05
  • 1970-01-01
相关资源
最近更新 更多