gpt4 book ai didi

css - 使嵌套的 div 拉伸(stretch)到剩余容器 div 高度的 100%

转载 作者:技术小花猫 更新时间:2023-10-29 11:44:39 27 4
gpt4 key购买 nike

我有一个容器 div,我想至少将其拉伸(stretch)到整个窗口的高度。如果容器 div 中有很多内容,我希望它拉伸(stretch)到超过窗口的高度。这行得通。

在容器 div 中我有一个图像。在图片之后/下方,我有第二个 div。我希望这个嵌套的 div 垂直拉伸(stretch)以填充容器 div 的剩余空间。这行不通。

我试图在 this image 中说明问题.我希望 div 以右图 侧所示的方式拉伸(stretch),而不是右图 侧所示的方式。

以下是我的代码。如您所见,在这段代码中,我什至没有尝试使图像下的 div 垂直拉伸(stretch),因为没有任何效果。 “高度:100%”不起作用,因为我已将“100%”定义为默认窗口的高度,以便使容器 div 至少拉伸(stretch)到窗口的高度。

* {
margin: 0;
padding: 0;
}

body {
overflow-y: scroll;
overflow-x: hidden;
}

body,
html {
height: 100%;
}

.container {
display: block;
overflow: auto;
min-height: 100%;
height: 100%;
height: auto;
}

.bottom {
width: 100%;
}
<div class="container">

<img src="image.jpg" width="100%">

<div class="bottom">
LOREM IPSUM
</div>

</div>

最佳答案

我花了太多时间试图弄明白,但是乔治,我明白了!

“我发现了”的时刻是阅读其他问题,其中人们会问“我如何使用表格来做到这一点?”因为当然,这种布局对于表格来说很容易。但这让我想到了 display:table .

作为this blog post很好地争论,使用 display:table为您提供没有像 HTML 表格布局那样令人讨厌的标记开销的表格布局,允许您为不同的媒体查询提供语义代码和不同的布局。

我最终不得不对标记进行一个更改:包装器 <div>图像周围。此外,在处理 table displays 时,最大/最小高度都很奇怪: height给定父元素和子元素的约束,设置被视为首选高度。所以在 display:table-row 上设置高度为零包装器 div 使该行完全适合内容图像。将内容 div 的高度设置为 100% 可以很好地填充图像和父容器的最小高度之间的空间。

Voila!

仅压缩基本代码:

body {
overflow-y: scroll;
overflow-x: hidden;
}

body,
html {
height: 100%;
}

.container {
display: table;
width: 100% height: 100%;
/* this will be treated as a Minimum! It will stretch to fit content */
}

div.wrapper {
display: table-row;
height: 0px;
/* take as little as possible, while still fitting content */
}

img {
display: table-cell;
width: 100%;
/*scale to fit*/
}

.bottom {
display: table-cell;
height: 100%;
/* take as much as possible */
}
<div class="container">
<div class="wrapper">
<img src="http://placekitten.com/600/250" />
</div>
<div class="bottom" contentEditable="true">
</div>

适用于 Firefox 25、Chrome 32、Opera 18 和 IE10。在 IE 8 中不起作用,但那又怎样呢?它在 IE8 中看起来破损,只是无法拉伸(stretch)以适应。

如果您可以在 Safari、IE9 或移动浏览器中测试它,请发表评论。

关于css - 使嵌套的 div 拉伸(stretch)到剩余容器 div 高度的 100%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com