【问题标题】:100% height div and margin with fixed header is actually not 100%100% 高度 div 和带有固定标题的边距实际上不是 100%
【发布时间】:2014-05-24 10:30:33
【问题描述】:

我正在为跨平台移动开发 (Cordova/HTML5/angularJS/CSS3) 开发 Web 应用程序。 我试图有一个内容可滚动的标题(但使用 overflow:hidden (CSS) 在标题上没有滚动条)。

______________ | HEADER | |--------------| | |#| | |#| | Content |#| | |#| | |#| | |#| |--------------| '#' = scrollbar

所以这是可行的,但我无法一直向下滚动,因为我的一部分内容 div 不在屏幕底部。这个容器 div 是 100% 高度(CSS)和页眉高度的边缘顶部(CSS 也是):

这里是:

CODE AND LIVE DEMO

我对 JS 进行了修复,但这对我来说不是最好的解决方案(尤其是对于移动性能),只有 CSS 应该可以工作! 提前致谢

【问题讨论】:

    标签: css html scroll overflow


    【解决方案1】:

    发生了什么

    您希望有一个容器,该容器是整个页面减去设定高度(从其上方的页眉开始)。

    您可以使用 CSS(无 JS!)并与旧浏览器完全兼容,只需使用 positioning 技巧。

    首先,将您的#globalWrapper 设置为position:relative,以捕获其中包含positioned absolutely 的任何内容。

    接下来,将.ScrollableWrapper 设置为position:absolute,使用top:45px(而不是margin-top:45px,以及leftrightbottom 设置0

    代码

    #globalWrapper {
        overflow: hidden;
        height: 100%;
        background-color: white;
        position:relative;
    }
    .ScrollableWrapper {
        top: 45px;
        left:0;
        right:0;
        bottom:0;
        border: 5px solid red;
        position:absolute;
        overflow-y: scroll;
    }
    

    注意,.ScrollableWrapper 不得设置为 height:100%

    Working Fiddle

    【讨论】:

    • 我刚刚编辑了我的小提琴以使用绝对定位,但你已经添加了类似的答案但是你的小提琴不起作用,因为你没有删除所有的脚本,您应该删除演示中的脚本。
    • 奇怪,它可以在我的 Firefox 上运行,即使使用脚本也是如此。不过已删除,很好!
    • 可能脚本在 FireFox 中运行不正常 :)
    • 完美工作我会在移动设备上测试它,但我有信心 :) 非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-04
    • 2014-12-20
    • 1970-01-01
    相关资源
    最近更新 更多