我试图通过从窗口大小中减去页眉和页脚的值,并在文档加载时将内容设置为该值,来动态设置网页内容的高度。

每个函数参数都采用一个元素ID来获取元素的高度。排除content参数。

 function setH(header, content, footer)
{
    winH = top.innerHeight;
    winTitle = 32; // height value of the window title (part of the header)
    headH = $(header).outerHeight(true);
    footH = $(footer).outerHeight(true);
    contentH = winH - winTitle - headH - footH;
    $(content).css({'height' : (contentH) + 'px','overflow-y' : 'scroll'});
}

我遇到的问题是,outerHeight值返回了错误的值。页眉返回23px,页脚返回40px。

检查FF和Chrome中的元素时,值分别为25px和44px。

我试过使用innerHeight,outerHeight和outsideHeight(true),但没有获得正确的值。

关于可能出什么问题的任何建议?还是动态设置内容高度的另一种方法?我用完了要拉的头发,所以我们将不胜感激。

编辑:我正在使用iframe中的内容。以下内容:winH = top.innerHeight正在获取最顶部iframe窗口的高度值。

最佳答案

可以帮助我的一件事是将检查outerHeight()的代码放在$(window).load()中,而不是$(document).ready()中。显然,在许多情况下,使用$(document.ready()是可以的,但有时outerHeight()的值不正确是由元素未完全加载引起的。

09-17 23:42