【发布时间】:2018-06-30 19:43:37
【问题描述】:
我想使用一个简单的 flexbox 布局,其中包含页眉、部分(由旁边和部分组成)和粘性页脚。
我的问题是,当我将display:flex 应用于正文和至少一个孩子(无论是页眉、节还是页脚)时,只有 Firefox 会按照我的需要进行操作。
html, body {
height:100vh;
min-height: 100vh;
}
body {
display: flex;
flex-direction: column;
}
section {
flex: 1;
display: flex;
}
section section {
display: block;
}
<body>
<header>
<h1>Test Flexbox</h1>
</header>
<section>
<aside>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
</aside>
<section>
<article>
<h2>Test</h2>
<p>Welome to this flex box test snippet.</p>
</article>
</section>
</section>
<footer>
<p>Here goes the footer, that should always stick to the bottom</p>
</footer>
</body>
上述代码在 Firefox 中有效,但在 Chrome、Opera、Safari(可能还有更多)中无效。
如果我将display:flex 应用到正文之后的<div>,它可以在任何地方工作。
这是一个错误还是不允许/不建议在 body-element 上使用 flexbox?
编辑: 这是使用适用于所有浏览器的 div 的替代版本:
html, body {
height:100vh;
min-height: 100vh;
}
div {
display: flex;
flex-direction: column;
}
section {
flex: 1;
display: flex;
}
section section {
display: block;
}
<body><div>
<header>
<h1>Test Flexbox</h1>
</header>
<section>
<aside>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
<p>Test Test Test</p>
</aside>
<section>
<article>
<h2>Test</h2>
<p>Welome to this flex box test snippet.</p>
</article>
</section>
</section>
<footer>
<p>Here goes the footer, that should always stick to the bottom</p>
</footer>
</div></body>
【问题讨论】:
-
您能否提供使用
div时有效的示例?顺便说一句,Flexbox 可以在body上使用。 -
@LGSon 添加了“div”版本。
标签: css firefox flexbox sticky-footer