【发布时间】:2015-08-29 14:16:06
【问题描述】:
我正在尝试让我的页面中的一些内容填满所有剩余的屏幕尺寸。我的页面有一个标题,内容是两个 div,都需要可滚动。我尝试了一些解决方案,我想出的最好的方法是使用 Flexbox 和 CSS calc 来设置高度。
但是 flexbox 的高度仍然只是内容的高度。大多数其他答案据说将body 和html 标签高度设置为100%。这也不起作用,我检查页面高度没有被继承。所以我怀疑这可能是问题,但我不知道答案会是什么。
我也在使用 bootstrap 并使用 box-sizing 修复了我在使用 bootstrap 时遇到的一些问题,这也可能是一个问题。
我的弹性盒 CSS:
html,
body {
height: 100%;
/* setting height: 100vh doesn't work either
height: 100vh;
*/
margin: 0
}
body {
background: none repeat scroll 0 0;
padding-top: 105px;
}
/* my header is 102px high and using calc to set the remaining height */
.flex-box {
display: flex;
height: -moz-calc(100% - 102px);
height: -webkit-calc(100% - 102px);
height: calc(100% - 102px);
}
.left {
flex: 1;
order: 1;
overflow: auto;
background:red;
}
.right {
flex: 1;
order: 2;
overflow:auto;
background:green;
}
/* Fix for bootstrap box issues in slickgrid */
*,
*:before,
*:after {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.container .row *,
.container .row *:before,
.container .row *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
编辑:添加 HTML:
<div class="flex-box">
<div class="left">
<div ui-tree="treeOptions" id="tree-root">
<ol ui-tree-nodes="" ng-model="root.items">
<li data-ng-repeat="item in root.items"
ui-tree-node
data-ng-include="'angularTree.html'"></li>
</ol>
</div>
</div>
<div class="right">
<slickgridjs id="data-grid"></slickgridjs>
</div>
</div>
编辑:这是一个 jsfiddle,其中包含我正在使用的所有 css,以及更完整的 html。
https://jsfiddle.net/w48567c6/
如何让 flexbox 使用整个剩余的屏幕高度?
【问题讨论】:
-
请同时发布 HTML。如果你能提供一个在线示例也更好。
-
完成。我会看看我是否可以让 jsfiddle 工作。
-
这就是我想要的,是的,我只是不知道为什么它会破坏我的身边。只是一个注释 - 左右 div 似乎滚动不正确?
标签: css twitter-bootstrap flexbox