我有以下 HTML 结构部分(为简单起见省略了结束标签,缩进表示嵌套标签):
...
- <div class="main-content-wrapper">
- <div class="item-image-wrapper">
- <img class="item-image fit">
- <div class="item-text">
- <h2 id="itemTitle">
- <p id="itemContent">
使用以下 CSS
.itemdetailpage section[role=main] article .main-content-wrapper {
display: -ms-grid;
-ms-grid-rows: auto auto;
width: 100%;
height: 100%;
}
.itemdetailpage section[role=main] article .item-image-wrapper {
-ms-grid-row: 1;
width: 100%;
height: 100%;
}
.itemdetailpage section[role=main] article .item-image {
margin-top: 0px;
margin-left: 0px;
}
.itemdetailpage section[role=main] article .item-image.fit {
/* Fit image to page size */
max-width: 100%;
max-height: 100%;
}
.itemdetailpage section[role=main] article .item-text {
-ms-grid-row: 2;
margin-right: 5px;
}
目标是使 IMG 不比主要内容允许的高(也不宽),即,如果大于此,则适合主要内容空间,或者如果较小,则保持其原始大小。文本可以在图像下方流动,因此也可以在折叠下方,这没问题。这应该在没有 JS 代码的情况下发生,只有 CSS。
当项目文本比图像窄时,一切正常。图像包装器比图像高一些像素,不知道为什么,但看起来还可以。
我在这里看到的问题是同时:图像高于可用高度,并且项目文本比图像宽(特别是项目标题)。在这种情况下,图像包装器变得比其容器高,因此跟随图像。例如.main-content-wrapper
,接收到 900 像素的(正确)高度,但高度为 1024 像素,item-image-wrapper
图像高度为 1024 像素(其自然高度)。
我知道这个 100% DIV 高度一次又一次地出现,我一直在寻找答案,但我找不到适合这种情况的答案。
编辑:
我找到了这个SitePoint 参考,它说“百分比值是指...的高度”的段落:有人知道这个规则吗?