【发布时间】:2012-01-10 03:49:49
【问题描述】:
我正在编写一个带有侧边栏的 web 应用程序。 webapp 适合一个 div 填充整个屏幕(绝对定位,100% 高度/宽度)。侧边栏顶部有标题和徽标(固定高度),下方有一个包含项目列表的 div。如果项目超出可见侧边栏,我想将此项目列表设置为overflow: auto。我尝试使用max-height: 100% 作为侧边栏,但这似乎并没有调用滚动条。如何让 div 填充侧边栏的剩余垂直空间,并在内容超出可见区域时显示滚动条?
+--------------------------------------------------------------------------+
| #app_pane |
| +------------------+ |
| | #sidebar | |
| | +--------------+ | |
| | | #logo | | |
| | | | | |
| | | height: 50px | | |
| | | | | |
| | +--------------+ | |
| | +--------------+ | |
| | | #list | | |
| | | | | |
| | | | | |
| | | <----+-+-----------o fill remaining height |
| | | | | and display scrollbars if necessary |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | +--------------+ | |
| +------------------+ |
+--------------------------------------------------------------------------+
编辑:
好吧,看起来我可以在 CSS3 中使用 calc() 完成此操作,但我更喜欢旧版浏览器支持的解决方案。
【问题讨论】:
-
这需要一点 JavaScript 的帮助。
max-height: 100%不会成功,尤其是。在旧版浏览器上。就浏览器支持而言,您需要往前走多远? -
我的目标是有限但技术性的受众。所以我预计浏览器会在过去两年内出现,并且不需要尖端的浏览器。
-
所以你想要这样的东西吗? jsfiddle.net/9uJDZ/1
-
@mrtsherman 如有必要,我只希望列表具有滚动条。徽标应始终可见。