当前位置: 首页 > 知识库问答 >
问题:

最大高度:100%,因为img在嵌套div中不起作用[重复]

柳才良
2023-03-14

我正在尝试为图像设置max-高度:100%,即在几个嵌套容器内。图像的父级之一具有像素高度。但是图像仍然超过父级的高度。

嵌套容器有不同的用途:

  1. div.grid-container具有固定的宽度和高度(以像素为单位),以限制元素的总体大小
  2. image-container用于内部用途(fiters、mirror、javascript行为)
  3. img本身不能超过总尺寸

我认为,如果父母中的一方有固定的高度,那么将“最大高度”设置为任何内部元素都会将其高度限制为父母的高度。不幸的是,这并没有起作用(请参阅代码片段)。

我知道我可以以像素为单位设置图像的最大高度(200px,作为网格容器高度),但这个小部件是为在不同的地方使用而设计的,所以我事先不知道它的容器确切高度,我只知道它是固定的。

如何在不使用javascript(仅使用CSS)的情况下使图像不超过容器的高度?

/* page grid element- has fixed height and width */
.grid-container {
  width: 200px;
  height: 200px;
  background-color: green;
}
 
/* Image container - required for some purposes, must not exceed container size */
.image-container {
  outline: 5px solid red;
  max-width: 100%;
  max-height: 100%;
}

/* image must not exceed it's container */
img {
  max-width: 100%;
  max-height: 100%;
  display: block;
}
<h2>does not work - image height exceeds container's height</h2>
<div class="grid-container">
  <div class="image-container">
    <img src="http://via.placeholder.com/150x300">
  </div>
</div>

<br>
<br>
<br>
<br>
<br>
<br>
<br>

<h2>for width it works as expected</h2>

<div class="grid-container">
  <div class="image-container">
    <img src="http://via.placeholder.com/300x150">
  </div>
</div>

共有1个答案

章稳
2023-03-14

我无法在视觉上看到您的代码,但我相信您需要在图像上设置一个高度。在这种情况下,您可以在图像本身上放置高度:100%;和宽度:自动;或宽度:100%;高度:自动;这将保持长宽比并应降低高度

 类似资料:
  • 我有一个完全居中的div(itemSoldOutView)。在这个div中还有另一个div(itemSoldOutViewContent),它的最大高度应该是父div的90%。因此,如果内容太多,它就会滚动(注意:只有内部内容div应该滚动)。但这不起作用。如何设置正确的高度? 这是我的代码(JSFIDDLE):

  • 问题内容: 我使用占用所有可用空间的第三方组件,即width=100%和height=100%。我没有控制权。 我正在尝试使其适合以下布局,但是它height=100%不起作用(我希望第三方组件占据所有绿色空间)。 为什么?您将如何解决? 问题答案: 通常,对于使用percent on height来获取其父代的高度的元素,父代需要的高度不是auto或定位为绝对高度,否则height将计算为aut

  • 问题内容: 将div高度设置为0px似乎无效。 div展开以显示其内容,我们如何防止这种情况发生? 问题答案: 如果您 真的 想确定它没有高度,可以使用以下方法: 如果您在IE上仍然遇到问题,也可以添加 在针对IE的样式表中添加了条件注释。这将触发IE中的hasLayout属性。 并且display:none与将其设置为零高度不同。只需查看各种clearfix解决方案,以解决 不 从流程中删除它的

  • 问题内容: 我有一个容器div,我想至少拉伸到整个窗口的高度。如果容器div中有很多内容,我希望它可以扩展到大于窗口的高度。这可行。 在容器div中,我有一个图像。图片下方/下方,我有第二个div。我希望此嵌套div垂直拉伸以填充容器div的剩余空间。这行不通。 我试图用这张图来说明问题。我希望div以右图 左侧 所示的方式拉伸,而不是像 右图 右侧所示。 以下是我的代码。如您所见,在这段代码中,

  • 我试图设置一个渐变覆盖整个页面 这是我的代码: (我知道我写的最大高度:1%;,请继续阅读) 正如我所说,身高:100% 不起作用,所以我尝试使用各种输入,我看到的是,当我使用像素作为最大高度时,渐变的高度会发生变化,但无论我选择什么输入作为百分比的最大高度,渐变的高度都会保持不变,例如,在我的代码中,我使用了最大高度:1% 和渐变仍然超出了网页的高度。 我检查了开发工具,并应用了max heig

  • 问题内容: 我使用此 CSS将最大高度设置为 谁能给我一个普遍的答案, 和 之间有什么区别? 问题答案: 这是W3Clink的解释: 以下算法描述了两个属性[min-height和max-height]如何影响’height’属性的使用值: 临时使用的高度是根据上面“计算高度和边距”下的规则计算的(不包括“最小高度”和“最大高度”)。 如果此暂定高度大于“最大高度”,则会再次应用上述规则,但是这次