【发布时间】:2014-12-23 04:15:54
【问题描述】:
我一直在查看 StackOverflow 和网络上的所有 min-height: 100% 解决方案,但似乎找不到适合我(相对简单)需求的解决方案。
这就是我想要的:
- 我有一个两列容器,两列都应拉伸到相等的高度。
- 当内容未填满屏幕时,列应拉伸到整个窗口高度。
- 我很乐意使用 flex-box,但如果可能的话,我不希望使用 JS hack。
示例代码:
http://codepen.io/anon/pen/dwgDq?editors=110
<!DOCTYPE html>
<html>
<body>
<div class="container">
<div class="nav">
<p>Item 1</p>
<p>Item 2</p>
<p>Item 3</p>
<p>Item 4</p>
<p>Item 5</p>
</div>
<div class="content">
<p>Content 1</p>
<p>Content 2</p>
<p>Content 3</p>
<p>Content 4</p>
<p>Content 5</p>
<p>Content 6</p>
<p>Content 7</p>
<p>Content 8</p>
</div>
</div>
</body>
</html>
html, body { height: 100%; margin: 0; }
.wrapper {
height: 100%;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.container {
display: flex;
align-items: stretch;
min-height: 100%;
}
.nav {
background: grey;
width: 200px;
}
.content {
flex-grow: 1;
background: yellow;
}
这在 Safari 和 Chrome 中完美运行。
似乎 IE(在我的情况下为 v11)不尊重我的最小高度,因此,列不会填满屏幕的高度。根据我的阅读,IE6+7 在将高度视为最小高度方面存在问题,但这是过去的遗物,并且在使用 HTML5 文档类型时早已不复存在。
如何让 IE 尊重我的最小高度?
如何使这种布局发挥作用?
【问题讨论】:
-
这并不是说 IE 不遵守最小高度,它不遵守对于单行 flex 容器的要求,该行的高度应该是 flex 容器的高度。也就是说,我不知道是否可以做任何事情。
-
这里是 IE 团队的项目经理;这可能与我们一直在努力解决的几个 flexbox 问题有关。我刚刚在内部构建中测试了您的页面,无法重现在 IE11 中看到的结果。坚持住 - 我们将在未来的版本中发布修复程序。通过downloading Windows 10 领先一步。
-
我的问题几乎肯定是stackoverflow.com/questions/19371626/…的重复。
-
我遇到了同样的问题,我修复了设置高度而不是最小高度,并使用媒体查询进行更改
标签: css html internet-explorer height