【问题标题】:How to get an image to adapt in size to match the HEIGHT of its container如何让图像适应大小以匹配其容器的高度
【发布时间】:2018-03-25 18:10:54
【问题描述】:

我正在尝试在 CSS 中执行此操作,并认为它很简单,我以前从未真正需要执行此操作,但现在我尝试了它,但无法让它工作。

我有一个容器,里面有一个图像。 我想要的是根据高度而不是宽度增加尺寸的图像。我认为这会像这样简单:

#project-header {
   height: 50%;
}
#project-header img {
display: block;
height: 100%;
width: auto;
margin: auto;
}

这不起作用。

我的容器是浏览器窗口的 50% 高度,所以这一切都很好,但图像以原始大小显示。

我希望它在使用 width: 100%, height: auto; 时表现得像响应式图像。但我的图像始终是其原始大小(因此流出容器)并且不适应其容器的高度。

我错过了什么吗?或者这是不可能的?有没有办法做到这一点?

【问题讨论】:

  • 我经历了这个,但我的问题仍然存在。如果我将我的宽度设置为 max-width: 100% ,如该帖子中所述,我的图像会调整为容器的宽度,但会忽略容器的高度并增加大小以适应宽度,而不是高度。所以,如果说我的图像是 1000 像素 x 1000 像素,容器是 1000 像素 x 500 像素,我希望我的图像适应高度,以便调整宽度但不超过 500 像素。目前我的图像扩展为 1000px 并溢出到盒子外面

标签: css responsive-images


【解决方案1】:

要让你的 div 采用height: 50%,你首先需要将height:100% 提供给所有父 div 一直到 html 标记

html, body{
height:100%;
}

然后你的 css 将按预期工作

    #project-header{
            height:50%;
    }
    #project-header img{
            max-height: 100%;
            width: auto;
    }

html, body{
  height:100%;
  /* width: 95%; */
}

#project-header{
  height:50%;
  width: 500px;
}
#project-header img{
  max-height: 100%;
  width: auto;
}

.second-image{
  height:50%;
  /* width: 500px; */
}
.second-image img {
    max-width: 100vw;
    height:auto;
    width:auto;
    max-height:100vh;
}
Method 1
    <div id="project-header">
      <img src="http://via.placeholder.com/350x150" alt="">
    </div>
    
    
    Method 2
    <div class="second-image">
      <img src="http://via.placeholder.com/350x150" alt="">
    </div>

【讨论】:

  • 嗨,我的 html 和 body 正确设置为 100% 的高度,并且容器的行为与预期一样(它占据了浏览器窗口高度的 50%),但是图像没有表现正如我所料。它似乎完全忽略了容器的高度并显示全尺寸。
  • 现在添加了一个工作代码 sn-p,现在会更有意义。
  • 谢谢,但这些都不适合我。在这两种情况下都会发生同样的事情,图像会忽略其容器的高度。解释我需要什么:如果图像是 1000px x 1000px,并且容器是 1000px 宽和 500px 高,我需要图像与容器的高度相匹配 - 所以它将是 500px 高。
  • 如果你做一个js小提琴会很好
  • 抱歉,再次运行它,可能是我的缓存在播放 - 你的解决方案成功了
猜你喜欢
  • 2015-01-05
  • 2020-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2014-09-12
相关资源
最近更新 更多