所以我有一个div,它是完整的浏览器高度(100%),我们称之为' x'。然后我有3个div包含在其中,它们可以被称为' a'' b'' c'。 div的高度' a'是一个段落的高度。 div的高度' b'根据浏览器完全改变。 div的高度' c'应填写剩余的浏览器高度,使c = 100-a-b。如果其中任何一项不清楚,请随时提出问题。谢谢你的帮助:))
答案 0 :(得分:3)
这是柔性盒的完美用例。您需要定义高度为100%
的容器,您可以将其置于绝对位置。并为容器提供flex
容器布局。很难解释,但你的解决方案是:
* {box-sizing: border-box;}
.flex-container {
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-webkit-flex-wrap: nowrap;
-ms-flex-wrap: nowrap;
flex-wrap: nowrap;
-webkit-justify-content: flex-start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-align-content: stretch;
-ms-flex-line-pack: stretch;
align-content: stretch;
-webkit-align-items: flex-start;
-ms-flex-align: start;
align-items: flex-start;
}
.flex-item:nth-child(1) {
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-align-self: auto;
-ms-flex-item-align: auto;
align-self: auto;
}
.flex-item:nth-child(2) {
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 1 0 auto;
-ms-flex: 1 0 auto;
flex: 1 0 auto;
-webkit-align-self: auto;
-ms-flex-item-align: auto;
align-self: auto;
}
.flex-item:nth-child(3) {
-webkit-order: 0;
-ms-flex-order: 0;
order: 0;
-webkit-flex: 0 1 auto;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
-webkit-align-self: auto;
-ms-flex-item-align: auto;
align-self: auto;
}
.flex-container {position: absolute; top: 0; bottom: 0; border: 1px solid #999; min-height: 250px;}
.flex-item {border: 1px solid #99f; margin: 5px; padding: 20px;}
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>