【发布时间】:2010-11-07 02:46:29
【问题描述】:
我有以下情况,如图所示。灰色 div 是洋红色和蓝色 div 的父级。洋红色 div 随内容垂直缩放。我想让蓝色 div 始终缩放到包含灰色 div 的底部。我已经搜索并尝试了各种组合,但都没有效果。
编辑: 问题解决了!容器需要一个overflow: hidden,而我要拉伸到底部的div(蓝色)需要padding-bottom: 1000px;边距底部:-1000; (或更大,如果你需要)
【问题讨论】:
我有以下情况,如图所示。灰色 div 是洋红色和蓝色 div 的父级。洋红色 div 随内容垂直缩放。我想让蓝色 div 始终缩放到包含灰色 div 的底部。我已经搜索并尝试了各种组合,但都没有效果。
编辑: 问题解决了!容器需要一个overflow: hidden,而我要拉伸到底部的div(蓝色)需要padding-bottom: 1000px;边距底部:-1000; (或更大,如果你需要)
【问题讨论】:
如果您需要 IE6 及更高版本的支持,答案是:您不能只使用 css。
有不同的解决方案可以真正缩放 div 或让它看起来像这样:
有一个 ccs 选项使用非常大的填充和同样大的负边距,但我不记得它是否适用于所有浏览器,我现在找不到文章。
编辑:大填充/负边距css解决方案:
这篇文章谈论的是 Firefox 1.5 和 Safari 2,所以我不知道它是否仍然有效,但 here it is。
【讨论】:
执行此操作的 JavaScript 将是...
<div id="yourDiv" style="background-color: Blue; width: 150px;">
Hello
</div>
<script type="text/javascript">
var div = document.getElementById('yourDiv');
div.style.height = document.body.clientHeight + 'px';
</script>
编辑:
查看this链接以获取不同浏览器中的clientHeight...
【讨论】:
在您的父 div 内部,如果您在蓝色 div 上设置“float:right”并以百分比(高度:100%;)来调整您的身高,我认为您应该实现您的要求。
由于蓝色 div 是灰色 div 的子级,因此蓝色 div 的最大高度不应超过父级 div。除非我在这里遗漏了什么......
此外,如果您将蓝色 div 浮动在右侧,请务必将其放在标记中的洋红色 div 之前。
橡子
【讨论】:
根据我的经验,将蓝色 DIV 的高度设置为 100% 不起作用。我唯一想要的就是让蓝色 DIV 有自己的背景,要解决这个问题,你只需要让灰色 DIV 的背景包含另一个 DIV 的蓝色背景。
【讨论】:
另一种在 html 对象中设置高度 100% 的方法是使用样式:
<html>
<head>
<style>
html, body {
height: 100%;
}
#mydiv {
height: 100%;
background-color:red;
}
</style>
</head>
<body>
<div id="mydiv">aaa</div>
</body>
</html>
【讨论】:
关键是要在父容器上设置高度。然后 height:100% 工作
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Divs</title>
<style type="text/css" media="all">
#main {
height:30em;
width:30em;
background-color:#999999;
padding:1em 1em 0px 1em;
}
.inner {
width:5em;
}
#blue {
float:right;
background-color:#0000FF;
height:100%;
}
#magenta {
float:left;
background-color:magenta;
}
</style>
</head>
<body>
<div id="main">
<div class="inner" id="blue">
1<br/>2<br/>3<br/>4<br/>5<br/>6<br/>7<br/>8<br/>9<br/>10
</div>
<div class="inner" id="magenta">
1<br/>2<br/>3<br/>4<br/>5<br/>6
</div>
</div>
</body>
</html>
【讨论】:
我通过设置父级的 div 使其工作(无论如何在 Chrome 中):
position: absolute;
和孩子的div:
height: 100%;
【讨论】: