2013-02-19 204 views
0

我想在我的网站上添加一些高度的页眉,并在页面底部固定一个页脚。我对内容块高度有问题。内容100%窗口高度的高度

我要让内容拉伸到整个窗口高度时,没有太多的内容文字和拉伸到内容的全高度时,它比窗口的高度大。

当我设置内容块“高度:100%”,它超出屏幕(忽略头块高度)。

考虑到头部的高度,我怎样才能将它伸展到全窗口高度?

基本的例子(它是如何现在):

http://cssdesk.com/Tcs98

感谢。

+1

我不确定我的理解。您是否希望将页眉固定在页面的顶部,并且要独立于页脚和页眉滚动内容? – 2013-02-19 16:24:41

+0

号当内容文本大于窗口高度(页脚始终固定)时,标题和内容滚动,并且当内容文本量较小时,内容高度适合窗口高度。 – YamahaSY 2013-02-19 16:27:42

+0

因此,当内容小于屏幕高度时,您不希望内容和标题滚动。是? – 2013-02-19 16:28:38

回答

2

你的问题是,如果这个元素是X高,那么CSS中没有办法说这个元素应该是Y高。 (Not yet that is)

您需要使用脚本来获取窗口的高度,并将其与内容的高度。

使用jQuery这是因为它很简单,并不需要一大堆的浏览器专项检查碰到很多浏览器的工作:

$(function(){ 
    if($('.content').height() < $(window).height() - 225){ 
     $('.content').css('height',($(window).height() - 225) + 'px'); 
    } 
}); 

这需要内容的高度在DOM准备就绪,将其与窗口的高度减去页眉和页脚的高度进行比较。

如果小于窗口的高度更低的页眉和页脚(有效内容的区域),然后将其设置高度,以该值。

,那么你需要修改目前的CSS和删除内容的100%的高度,并在底部添加填充25像素,以腾出空间页脚。

Here is an example of large content.Here is an example of small content

当然,这是一个简单的例子,并且不处理窗口调整大小。

编辑:度过一天想着它,我意识到它不会是更难使之完全响应。

var initialHeight, contentHeight; 

$(function(){  
    initialHeight = $('.content').height(); 
    contentHeight = $(window).height() - 225; 

    if(initialHeight < contentHeight){ 
     $('.content').css('height',contentHeight + 'px'); 
    } 

    $(window).resize(function(){ 
     contentHeight = $(window).height() - 225; 
     if(initialHeight < contentHeight){ 
      $('.content').css('height',contentHeight + 'px');  
     }else{ 
      $('.content').css('height',initialHeight + 'px'); 
     } 
    }); 
}); 

使用上面的代码,窗口和内容高度无关紧要;它将始终调整大小以适合“内容”区域。

您将“内容”区域定义为未被页脚和页眉占用的“窗口”的数量。然后在第一次加载窗口时获取内容元素的高度。如果内容区域比内容元素大,则设置与内容区域相匹配的新高度(如果内容区域变小),则将高度设置为与其开始的高度相等。

Here is the fiddle