【问题标题】:Let image size be relative to sibling flex element [duplicate]让图像大小相对于同级flex元素[重复]
【发布时间】:2022-02-09 20:18:00
【问题描述】:

图片的高度如何与左边元素的高度相关?

我正在尝试创建以下布局:

我尝试了什么

我正在尝试使用 flexbox 来实现这一点。我的 html 看起来像这样。我在容器<div class="split"> 上有display:flex。该容器包含两个子容器:<div class="intro__primary"><div class="intro__secondary">。第一个有h1pa。第二个img

我给两个孩子一个 48% 的宽度,我希望我的图片占据尽可能多的垂直空间,但不要超过 <div class="intro__primary"> 的高度。

HTML

<section class="intro">
  <div class="split">
     <div class="intro__primary">
        <h1></h1>
        <p></p>
        <a class="btn"></a>
     </div>
     <div class="intro__secondary">
        <img>
     </div>
</div>

CSS

.split {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.intro__primary {
        width: 48%;
        align-self: flex-start;
}

.intro__secondary {
    width: 48%;
    height: 100%;
    align-self: flex-end;
}

.intro__secondary > img {
    max-width: 100%;
    height: 100%;
}

上面的代码导致图像的高度比左侧文本的容器大得多。我在所有属性上玩了很多,但无法修复它。我忽略了什么?

【问题讨论】:

  • 坦率地说,这是你应该使用 background 图像的东西,这解决了整个问题。您的图片是样式而不是内容,因此根本不需要在 HTML 中。

标签: html css flexbox


【解决方案1】:

.split {
  max-height: 100px;
  display: flex;
}
.intro__secondary {
  max-height: 100%;
}
.intro__secondary img {
  height: 100%;
  width: 100%;
  object-fit: cover; /* you can also use object-fit: contain; */
}
<section class="intro">
  <div class="split">
     <div class="intro__primary">
        <h1>Heading</h1>
        <p>paragraph</p>
        <a class="btn"></a>
     </div>
     <div class="intro__secondary">
        <img src="https://source.unsplash.com/random" alt="random-image">
     </div>
  </div>
</section>

【讨论】:

  • 我试过 tihs,但在这种情况下似乎不起作用。
  • @Osocman 尝试删除图像上的宽度属性。或设置width: auto
  • 试过了,但不幸的是,结果仍然是高度太大的intro__secondaryimg。图片和intro__secondary利用了所有可用的宽度,在保持纵横比的同时,高度变得太大了。我尝试创建的是图像利用最大宽度和高度,只要高度不大于intro__primary
  • 我在上面做了修改。请检查一下。当我的意思是最大高度时,我最初说的是最小高度……我的错。
  • 再次感谢您的回复!我尝试了您的建议,但遗憾的是它们没有奏效!现在,我很确定问题出在intro__secondary 的高度属性上,因为它没有占用split 容器的全部高度。这可能是因为我从未明确说明过split 容器的高度。有什么解决这个问题的建议吗?
猜你喜欢
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2017-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多