DIV自适应高度问题

发布网友 发布时间:2022-04-22 08:55

我来回答

1个回答

热心网友 时间:2023-10-17 04:05

怎样让一个div高度自适应浏览器高度 很郁闷的一件事情是:有时你需要一个DIV根据里面的元素自动适应高度,所以,你肯定无法给这个DIV定义一个实际高度。而你随便巢状一个DIV却发现并不适应高度。这事就郁闷了。下面给出一些方法。大致的例子是: <div id="main">
<div id="content"></div>
</div>当Content内容多时,即使main设定了高度100%或auto。在不同浏览器下还是不能完好的自动伸展。内容的高度比较高了,但容器main的高度还是不能撑开。我们可以通过三种方法来解决这个问题。
增加一个清除浮动,让父容器知道高度。请注意,清除浮动的容器中有一个空格。
<div id="main">
<div id="content"></div>
<div class="page_speeder_611532684"> </div>
</div> 增加一个容器,在程式码中存在,但在视觉中不可见。
<div id="main">
<div id="content"></div>
<div class="page_speeder_1452110045"></div>
</div> 增加一个BR并设定样式为clear:both。
<div id="main">
<div id="content"></div>
<br class="page_speeder_1066618161" />
</div>以上三个方法都不是最好的解决方法,因为在程式程式码观念中是提倡尽量不要新增无意义的标签程式码。现在,你可以用下面的方法来实现DIV自适应高度效果#main {height:100%;

让一个div高度自适应浏览器高度的方法:
1、获取到window的innerHeight、clientHeight根据这两个引数定义div的高度。
function resizeElementHeight(element) {
var height = 0;
var body = window.document.body;
if (window.innerHeight) {
height = window.innerHeight;
} else if (body.parentElement.clientHeight) {
height = body.parentElement.clientHeight;
} else if (body && body.clientHeight) {
height = body.clientHeight;
}
element.style.height = ((height - element.offsetTop) + "px");
}
2、定义div的高度的方法:
document.getElementById("yourDiv").height = height;

解决方法是:
1, ,body{height:100%} container{position:absolute;:0;left:0;min-height:100%;height:auto}切记,height:auto不能height:100%。用height:100%,
2,当container的内容高度小于浏览器的没出现问题,但当container的内容高度大于浏览器的高度时你会发现container的height并没有随着内容高度而自适应。最后说一下height:100% 并不是没用的东西,,
3,用到不对的位置就是没用的东西了.

求助,解决div自适应浏览器高度
我已经加你扣扣了,你这个有好多种办法可以解决

<script> function setContentHeight (){ var web_subnav = document.getElementById( "web-subnav" ); var height = document.documentElement.clientHeight - 40 - document.getElementById("web-bd").offsetHeight; web_subnav.style.height = height + 'px'; } window.onload = setContentHeight; window.onresize = setContentHeight;</script>
给 web-subnav 和 web-bd 加 id
Safari浏览器下怎么实现iframe高度自适应
实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。
<script type=text/javascript>
** iframe自动适应页面 **
输入你希望根据页面高度自动调整高度的iframe的名称的列表
用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。
定义iframe的ID
var iframeids=["test"]
如果使用者的浏览器不支援iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏
var iframehide="yes"
function dyniframesize()
{
var dyniframe=new Array()
for (i=0; i<iframeids.length; i++)
{
if (document.getElementById)
{
自动调整iframe高度
dyniframe[dyniframe.length] = document.getElementById(iframeids);
if (dyniframe && !window.opera)
{
dyniframe.style.display="block"
if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) 如果使用者的浏览器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;
else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) 如果使用者的浏览器是IE
dyniframe.height = dyniframe.Document.body.scrollHeight;
}
}
根据设定的引数来处理不支援iframe的浏览器的显示问题
if ((document.all || document.getElementById) && iframehide=="no")
{
var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)
tempobj.style.display="block"
}
}
}
if (window.addEventListener)
window.addEventListener("load", dyniframesize, false)
else if (window.attachEvent)
window.attachEvent("onload", dyniframesize)
else
window.onload=dyniframesize
</script>
怎样让你的div自适应浏览器和内容两个高度呢?
之前我只站在我的最高解析度的角度站去写,把container的min-height设定达到最佳效果。却忽略了,如果大于我的最高解析度时,这时container的min-heihgt就不能满足了!给container设height:100%,结果不行,我有点怀疑height:100%根本就没用的东西。在这个问题上,给container设min-heihgt:xpx肯定是不行了。查了很多资料,在他们提到的基本上很多都是,body{height:100%;} container{height:100%;}。依照他们的方法依然没有效果,container改成{height:100%;min-height:100%}一样没有效果。 其实这个问题归结就是让container自适应浏览器和内容两个高度。照常规的,当有背景图的时候我们都会直接放在body层,谁会去考虑container的高度到底是多高?此次专案,有两个背景图, 在我想到这个方法时,也是受到别人相似的方法启发。自己写了一个小的测试 当div为相对定位position:absolute的时候,我们给它设height:100%;它会自适应浏览器的高度。因此,在这我的解决方法是: ,body{height:100%} container{position:absolute;:0;left:0;min-height:100%;height:auto}切记,height:auto不能height:100%。用height:100%,当container的内容高度小于浏览器的没出现问题,但当container的内容高度大于浏览器的高度时你会发现container的height并没有随着内容高度而自适应。最后说一下height:100% 并不是没用的东西,呵呵,用到不对的位置就是没用的东西了! 好了,自认为是挺不错的一种解决方法......哈哈!我觉得呢碰到的问题越多,学习才会有劲,学到的也会越多,吸收的也会越多。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com