网页:多个可变高度的滚动区域
我想创建一个具有固定高度的页眉、可变高度的中间部分和固定高度的页脚的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我已经在 IE7/8(不是 6!)和最新版本的 Firefox、Chrome、Opera 中对此进行了测试。
现场演示(带有无聊的颜色)
>HTML 非常简单:
另一方面,CSS 有点复杂:
如果您要求的话,我会解释 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:
On the other hand, the CSS is a bit more complicated:
I will explain how the CSS works if you ask me to.
尝试在 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 atheight: 70%; width: 50%; float:left;
. This leaves the footer div atheight: 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.