<img>如何缩放到同级的高度?

时间:2019-08-29 17:37:17

标签: html css flexbox

标题很容易描述。请记住,如示例所示,容器元素应该具有自己的宽度和高度。尽管此示例是用flexbox编写的,但我不介意使用其他方法,只要它是纯净的HTML / CSS。

我觉得这应该是微不足道的,但是我一直在寻找一段时间,包括有关Stack Overflow的相关答案,我似乎找不到任何令人满意的答案。

body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

img {
  margin-left: 8px;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
</head>

<body>
  <div>
    <h1>Lorem Ipsum</h1>
    <h2>Dolor Sit Amet, here's some extra text</h2>
  </div>
  <img src="https://lorempixel.com/g/64/64/" />
</body>

</html>

4 个答案:

答案 0 :(得分:4)

如果再添加一些div,则可以。

.wrapper {
  display: flex;
  align-items: stretch;
}

img {
  height: 100%;
}
<body>
  <div class="wrapper">
    <div>
      <h1>Lorem Ipsum</h1>
      <h2>Dolor Sit Amet, here's some extra text</h2>
    </div>
    <div class="img-wrap">
      <img src="https://lorempixel.com/g/64/64/">
    </div>
  </div>
</body>

答案 1 :(得分:1)

您可以将两个兄弟姐妹放入父项<div>中,给父项标签设置一个高度,然后给<img/>标签项设置一个100%的高度。这样,它将缩放到父盒的高度。 例如,

<div style="height: 100px;">
  <div>
    <h1>Lorem Ipsum</h1>
    <h2>Dolor Sit Amet, here's some extra text</h2>
  </div>
  <img style="height: 100%;" />
</div>

类似的东西应该起作用。

答案 2 :(得分:0)

正确地将图像构造为div并应用flex属性应该可以解决问题。

<body>
  <div class="wrapper">
    <div>
      <h1>Lorem Ipsum</h1>
      <h2>Dolor Sit Amet, here's some extra text</h2>
    </div>
    <div class="img-wrap flex-1">
      <img src="https://lorempixel.com/g/64/64/">
    </div>
  </div>
</body>


  .wrapper {
    display: flex;
    align-items: stretch;
  }

  img {
    height: 100%;
  }
.flex-1{
  flex: 1;
}

答案 3 :(得分:0)

您可以简单地从父(height: 100vh)中删除body,然后在图像上将align-self设置为stretch。但这不会保留图像的长宽比。

更好的方法是使用网格:

body {
  margin: 0;
  padding: 0;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr max-content;
  grid-template-rows: auto auto;
  justify-content: center;
  align-items: center;
}

h2 {
  grid-row: 2;
}

img {
  height: 100%;
  grid-column: 2;
  grid-row: 1 / 3;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
</head>

<body>
  <h1>Lorem Ipsum</h1>
  <h2>Dolor Sit Amet, here's some extra text</h2>
  <img src="https://lorempixel.com/g/64/64/" />
</body>

</html>