gpt4 book ai didi

jquery - 如何在不知道高度的情况下让div取剩余高度?

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:02 25 4
gpt4 key购买 nike

我在 .container 中有 2 个元素,即 .header.overflowElem

我想让.overflowElem占据.container的剩余高度,应该是overflow-y: auto。

HTML

<div class="box">

<div class="container">

<div class="header">
<h1>HEADER</h1>
</div>

<div class="overflowElem">
<ul>
<li><a href="#">ITEM 1</a></li>
<li><a href="#">ITEM 2</a></li>
<li><a href="#">ITEM 3</a></li>
</ul>
</div>

</div>

</div>

所有这些 HTML 都是使用 jQuery 的 ajax 注入(inject)的,如下所示:

$.ajax({
type: "GET",
url: "include/get_list.php",
data: params
}).done(function(data) {
var container = $("<div></div>")
.attr("class", "container")
.html(data)
.hide()
.appendTo(box);

}).fail(function() {
alert("Error.");

}).always(function(data) {

})

注意 var container 在初始化时是如何隐藏的

CSS:

div.box {
width: 700px;
border: 1px solid red;
padding: 45px 20px 20px;
}

div.container {
height: 500px;
background-color: #bbb;
}

div.header {
background-color: red;
/* HEIGHT in pixels is UNKNOWN */
}

div.overflowElem {
overflow-y: auto;
/*
CANNOT USE THIS BECAUSE i DON'T know the height of .header
height: calc(100% - height of .header in pixels);*/
}

jsfiddle:

https://jsfiddle.net/n4z02gL2/1/

现在,我可以将高度添加到 .header 并使用 calc() 和 bingo 计算 .overflowElem 的高度!

但是,因为所有的 HTML 都是使用 jQuery 的 ajax 插入的,并且它在初始化时是隐藏的,我不知道高度,也不能使用 ajax 获取它,因为容器是隐藏的

那么,解决方案是什么?任何想法,提示,技巧,黑客...谢谢

最佳答案

使用 flexbox,您所要做的就是更新您的 div.container 规则(为简洁起见,没有前缀)。

div.container {
height: 500px;
background-color: #bbb;

// add these properties here
display: flex;
flex-direction: column;
}

当然,这是假设您的浏览器支持允许您使用 flexbox。 CSS Tricks has a great write-up of flexbox here.

关于jquery - 如何在不知道高度的情况下让div取剩余高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088904/

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