我正在尝试使用flexbox做一个简单的设计,但是IE11遇到了麻烦。基本上,我希望页脚仅在内容不够高时才停留在底部。我在使用Chrome这样的操作时没有问题:
*, *:after, *:before { box-sizing: border-box; } html, body { height: 100%; margin: 0; padding: 0; } body { display: flex; flex-direction: column; } main { flex: 1; } <header> Header </header> <main> <p>Main</p> <p>Main</p> <p>Main</p> <p>Main</p> <p>Main</p> </main> <footer> Footer </footer>
只是玩一些,<p>main</p>以查看IE11错误的行为。
<p>main</p>
没有JavaScript,有没有办法实现这一目标?
IE浏览器存在一个min-height错误,并且需要display: flex在弹性列容器父项上进行操作,在这种情况下,html
min-height
display: flex
html
像这样更新您的CSS
*, *:after, *:before { box-sizing: border-box; } html, body { margin: 0; display: flex; } body { flex-direction: column; min-height: 100vh; } main { flex-grow: 1; } <header> Header </header> <main> <p>Main</p> <p>Main</p> <p>Main</p> <p>Main</p> <p>Main</p> </main> <footer> Footer </footer>