首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HTML中灵活的页眉、可滚动体和页脚

HTML中灵活的页眉、可滚动体和页脚
EN

Stack Overflow用户
提问于 2011-12-23 11:06:03
回答 3查看 1.7K关注 0票数 2

我试图创建一个简单的HTML布局,其中有一个页眉、内容和页脚部分垂直布局。

页眉和页脚的高度应该是灵活的,由内容决定。

内容部分的高度应该是剩余的高度,因此整个布局使用窗口的全部高度。内容部分将是可滚动的。

因此,为了:

  1. 标头高度取决于内容高度。无scrollbars.
  2. Content.高度是剩余的;window_height - (header_height + footer_height)。如果需要滚动条(溢出:auto;)
  3. 页脚。高度取决于内容高度。没有滚动条。

静态页眉和页脚高度有很多示例,但我发现没有一个能处理基于内容的高度。

我试过位置为绝对/相对/固定的普通div。我已经尝试过display: table/table-row/table-cell的几种配置。我甚至试过用实际的。但这些似乎都不起作用。以下是许多失败尝试中的一个:http://jsbin.com/uveloj/15/edit

如果没有脚本(只要有可能,我都不愿依赖JS ),我如何才能做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-27 13:27:13

如果不使用JavaScript,我认为这是不可能的。为了得到中间的卷轴,你想要的内容区域必须有一个设定的高度。如果页眉和页脚可以动态更改,则无法在不使用JavaScript的情况下更新内容区域的高度以适应滚动。但是,如果您只想编写几行JS,这是一个非常简单的布局。我有一个很好的例子给你:

http://jsfiddle.net/rogerblanton/8ctJJ/

不应使用框架。

票数 1
EN

Stack Overflow用户

发布于 2011-12-27 13:35:07

你想过用画框吗?

票数 1
EN

Stack Overflow用户

发布于 2014-04-30 13:15:03

我很久以后才看到这条线,但发现它很有用。

我发现,在一般情况下,您需要考虑到边距、边框等。您可以使用jQuery的outerHeight()函数来帮助:

代码语言:javascript
运行
复制
$(window).resize(function() {
    var windowHeight = $(window).height();
    var headerHeight = $('div#header').outerHeight(true)
    var footerHeight = $('div#footer').outerHeight(true);

    var contentHeight = windowHeight - ( footerHeight + headerHeight );
    var contentMargins = $('div#content').outerHeight(true) - $('div#content').height();
    var contentInnerHeight = contentHeight - contentMargins;

    $('div#content').height(contentInnerHeight);
}).resize();

除了js修复内容的高度之外,唯一真正重要的一点是让内容的溢出样式是滚动或自动。

下面是罗杰小提琴的一个改进例子:

http://jsfiddle.net/nuAmG/1/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8615285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档