网页:多个可变高度的滚动区域

发布于 2024-10-10 02:20:31 字数 241 浏览 1 评论 0原文

我想创建一个具有固定高度的页眉、可变高度的中间部分和固定高度的页脚的 html 页面。滚动时页脚和页眉不应移动。

到目前为止没有问题。

但我希望将中间部分分开,以便右栏和左栏有单独的滚动条并独立滚动。只要零件具有固定的高度,就可以使用溢出:滚动。但我希望它们随着窗户的大小而增长和缩小。

我不链接框架,我想经常使用 javascript (ajax) 更改两列的内容。

创建这样一个页面的最佳方法是什么?

I want to create a html page with a header of fixed height, a middle part with variable height and a footer with fixed height. The footer and the header shall not move when scrolling.

No problem so far.

But i want the midlle part to be divided, so that the right column and the left column have seperate scrollbars and scroll independently. This is possible with overflow:scroll as long as the parts have fixed heights. But i want them zu grow and shrink with the window.

I do not linke frames and i want to alter the contents of the 2 columns frequently using javascript (ajax).

What is the best way to create such a page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

花开柳相依 2024-10-17 02:20:31

我已经在 IE7/8(不是 6!)和最新版本的 Firefox、Chrome、Opera 中对此进行了测试。

现场演示(带有无聊的颜色)

>HTML 非常简单:

<div id="header">header</div>

<div id="middle">
    <div id="left">left</div>
    <div id="right">right</div>
</div>

<div id="footer">footer</div>

另一方面,CSS 有点复杂:

html, body {
    margin: 0; padding:0; border: 0;
    overflow: hidden
}
#header, #middle, #footer {
    position: absolute;
    width: 100%
}
#header {
    background: #777;
    height: 150px;
    top: 0
}
#middle {
    background: #f00;
    top: 150px;
    bottom: 150px
}
#footer {
    background: #777;
    height: 150px;
    bottom: 0
}
#left, #right {
    overflow-y: scroll
}
#left {
    background: #aaa;
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    height: 100%
}
#right {
    background: #999;
    position: absolute;
    left: 50%;
    top: 0;
    float: right;
    width: 50%;
    height: 100%
}

如果您要求的话,我会解释 CSS 的工作原理。

I've tested this in IE7/8 (not 6!) and recent versions of: Firefox, Chrome, Opera.

Live Demo (complete with boring colours)

The HTML is very simple:

<div id="header">header</div>

<div id="middle">
    <div id="left">left</div>
    <div id="right">right</div>
</div>

<div id="footer">footer</div>

On the other hand, the CSS is a bit more complicated:

html, body {
    margin: 0; padding:0; border: 0;
    overflow: hidden
}
#header, #middle, #footer {
    position: absolute;
    width: 100%
}
#header {
    background: #777;
    height: 150px;
    top: 0
}
#middle {
    background: #f00;
    top: 150px;
    bottom: 150px
}
#footer {
    background: #777;
    height: 150px;
    bottom: 0
}
#left, #right {
    overflow-y: scroll
}
#left {
    background: #aaa;
    position: absolute;
    left: 0;
    top: 0;
    width: 50%;
    height: 100%
}
#right {
    background: #999;
    position: absolute;
    left: 50%;
    top: 0;
    float: right;
    width: 50%;
    height: 100%
}

I will explain how the CSS works if you ask me to.

起风了 2024-10-17 02:20:31

尝试在 div 上使用百分比(并省略表格)。例如,您可以将标题设置为 height: 20%,并将两个中间滚动 div 设置为 height: 70%;宽度:50%;浮动:左;。这会将页脚 div 保留在 height: 10% 处。通过 ajax 更改中间 div 的内容不应改变它们的高度。但当然,这提供了可变的而不是固定的页眉和页脚。

注意:这些数字仅供说明之用。您需要调整它们,包括未考虑的填充/边距。

Try using percentages on divs (and leave out the table). For example, you might set a header at height: 20%, and two middle scrolling divs at height: 70%; width: 50%; float:left;. This leaves the footer div at height: 10%. Changing the contents of the middle divs via ajax shouldn't change their height. But of course, this provides a variable, not fixed, header and footer.

note: these numbers are just for illustrative purposes. You'll need to adjust them, including padding/margins, which are not accounted for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文