gpt4 book ai didi

html - CSS:设置div高度填充父div,没有position:absolute;

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:00 25 4
gpt4 key购买 nike

我(再次)遇到了适应 child 的问题 <div>标签的大小为其父大小。父元素由另一个脚本控制(不想触摸它)并且可以放置在屏幕上的任何位置,高度/宽度可变。在我下面的示例中,这是 #container .我想在其中放置一些布局,其中有一些可变尺寸和一些固定尺寸:

  • 页脚(此处:#footer),具有固定高度(例如 100 像素)并填满父级的整个宽度
  • 左侧的导航栏(此处:#left),具有固定宽度(例如 150px)并填满上部的整个高度
  • 内容部分,就在导航栏的右侧,也就是剩余空间。

我为“页脚”找到了一些解决方案,它确实有效(Make a div fill the height of the remaining screen space -> 'daniels' 的帖子)。但我无法实现 #left部分填满整个高度。

下面是我的示例代码(在线版本:http://worldtalk.de/v2013/test.html;不会永远在线!):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<style type="text/css" media="screen">
* { margin: 0; }
html, body { height: 100%; }
#container {
position: absolute; /* have no control over that container element */
width: 400px; height: 300px;
top: 100px; left: 10px;
background: red;
}
#upper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -100px; /* -100px being the size of the footer */
}
#footer {
background: green;
height: 100px;
}
#left {
background: yellow;
float: left; width: 150px;

/* the following CSS doesn't do what I want... */

min-height: 100%;
height: auto !important;
height: 100%;
}
</style>
</head>
<body>
<div id="container">
<div id="upper">
<div id="left">left - shall reach down until footer</div>
content part...<br> shall be next to it...
</div>
<div id="footer">footer</div>
</div>
</body>
</html>

有什么想法可以不使用 JavaScript 来实现吗?

问候,斯特凡

最佳答案

解决方案一

我假设 position:absolute; 的问题是左侧导航将放置在页脚的顶部,但是这里有一个对左侧导航和页脚都使用 absolute 的解决方案。它的缺陷是左侧导航在页脚下继续,这可能是也可能不是问题。

#footer {
position:absolute;
left:0;
right:0;
}

#left {
position:absolute;
bottom:0;
}

http://jsfiddle.net/LmCLz/1/

方案二

像这样重新排列元素:

<div id="container">
<div class="inner">
<div id="left">left - shall reach down until footer</div>
<div id="right">content part...<br> shall be next to it...</div>
<div class="clear"></div>
</div>
<div id="footer">footer</div>
</div>

然后应用 margin-bottom:-100px; 为页脚腾出空间:

.inner {
height:100%;
margin-bottom:-100px;
}

http://jsfiddle.net/LmCLz/3/

关于html - CSS:设置div高度填充父div,没有position:absolute;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14810621/

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