gpt4 book ai didi

html - CSS 高度 : Fill available space. 无固定高度

转载 作者:技术小花猫 更新时间:2023-10-29 12:21:07 25 4
gpt4 key购买 nike

所以我有以下结构

<div id="container">
<div id="head"></div>
<div id="body"></div>
<div id="foot"></div>
</div>

我仅将 ID 用于说明目的,因此这甚至不一定用于整个页面。

我希望我的容器指定一个固定大小...或一个相对大小,都没有关系。为了争论起见,让我们说 300px 高度。还有 溢出:隐藏

我想让头/脚展开以适应其内部的内容,所以 height: auto 就足够了。

我想让 body 膨胀以适应头脚之间的剩余空间。如果内容太大,则滚动(overflow: auto)。

height: 100%#body 上不起作用,因为它会像父级一样获得 300px 的高度,并将自身的一部分和页脚推出父级.

头和脚 position: absolute 不起作用,因为将它们从文档流中取出后,#body 的某些内容将被隐藏。要解决这个问题,我们可以使用 padding-top/bottom 但我们不能在 #body 上设置 padding-top: xxpx/padding-bottom: xxpx 因为我们不知道头/脚的必要高度,所以它们是 height: auto

编辑:

我尝试将 container/head/body/foot 转换为 #bodyheight: 100% 的表格。这很好用,除了如果内容变得太大,#body 将不会滚动,而是整个表格展开以显示所有内容。这不是我想要的行为,因为我需要 #body 来滚动,而不是 #content 或者它的父级。

有什么建议吗?

最佳答案

立即想到的唯一解决方案是 display:table-cell,尽管您遇到了 ie6 和 ie7 中缺乏支持的问题。也许为好的浏览器提供规则,并提供一些 javascript 来计算 ie 的高度差异?

编辑:

这是另一种方法 - 使用 jQuery 来计算偏移量。请记住,这只是一个快速而肮脏的尝试 - 它需要经过浏览器测试,并且您需要一些简单的错误处理等,但这可能是一个起点。

不确定 javascript 是否是您想要的方式,但我看不到它是用纯 css 完成的。

我将 id 更改为类,这样您就可以拥有多个“fixedHeight”框:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>

<script>

$(function() {
$(".fixedHeight").each(function() {
var head = $(this).find(".head");
var body = $(this).find(".body");
var foot = $(this).find(".foot");
body.css("margin-top", head.height()).css("margin-bottom", foot.height());
});
});


</script>

<style>

.head {
background-color: red;
position: absolute;
top: 0;
width:100%;
}
.body {
background-color: blue;
color: white;
overflow: auto;
position:absolute;
top:0;
bottom:0;
width:100%;
margin:2.5em 0;
}
.foot {
background-color: green;
position: absolute;
bottom: 0;
width:100%;
}
.container {
background-color: #aaa;
border: 10px solid orange;
height: 300px;
width: 30%;
position: absolute;
}


</style>

</head>

<body>

<div class="container fixedHeight">
<div class="head">
<h1>Header Content</h1>
</div>
<div class="body">
<p>Body Content</p>
<p>Body Content</p>
<p>Body Content</p>
<p>Body Content</p>
<p>Body Content</p>
<p>Body Content</p>
</div>
<div class="foot">
<p>Footer Content</p>
</div>
</div>


</body>
</html>

关于html - CSS 高度 : Fill available space. 无固定高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153533/

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