我正在尝试使用flexbox创建一个粘性页脚,并且以下内容在iPhone以外的所有地方都可以使用-它可以在桌面Edge / FF / Chrome和Android上的Chrome浏览器上使用;它不适用于任何iPhone浏览器(它们都使用相同的渲染引擎,因此不足为奇)。它显示一个1000像素高的橙色框,其中包含单词“MAIN”,其后是一个红色区域,其中包含“after main”,然后是一个蓝色区域,其中包含“FOOTER”。

在iPhone上,红色区域丢失,并且整个蓝色页脚显示在屏幕上。好像flex-column的第一个和最后一个元素连接到屏幕的顶部/底部(而不是列的顶部/底部)。

有没有办法使它也可以在iPhone上使用?

我正在安装最新iOS更新的iPhone 6 Plus上进行测试。

<!doctype html>
<html lang="nb-NO">
<head>
    <style>
        html, body { height: 100%; margin:0; padding:0; box-sizing: border-box; font-size: 1cm; }
        .body-content { background-color: red; }
        main { background-color: orange; }
        footer { background-color: blue; }

        /* combined height greater than window height */
        main { height: 1000px; }
        footer { min-height: 600px; }

        body {
            display: flex;
            flex-direction: column;
            justify-content: space-between;
        }
    </style>
</head>
<body>
    <div class="body-content">
        <main>MAIN</main>
        <p>after main</p>
    </div>
    <footer>FOOTER</footer>
</body>
</html>

这是一个PEN(http://codepen.io/thebjorn/pen/qZRBdL),演示了我想在整个页面上完成的工作。在主体中注释高度为200px的内容,以查看内容高于容器的行为。

最佳答案

Z.Neeson对Flexbox and vertical scroll in a full-height app using NEWER flexbox api的评论似乎在这里适用,因为添加了此规则可以解决此问题:

    .body-content, footer {
        flex-shrink: 0;
    }

07-27 17:11