flex-grow在列布局中不起作用

我正在尝试views-cntnr占用views-cntnrmenubardiv未使用的任何空间。为此,我将flex显示设置为列方向。然后,我将flex-grow属性设置views-cntnr为1。似乎没有做任何事情。

注意:不确定这是否重要,但是我正在进行一些嵌套的flex显示。

回答:

<script src="https://code.jquery.com/jquery.min.js"></script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<script src="https://code.jquery.com/jquery-2.1.4.js"></script>

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>

<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<section class="analysis">

<div class="menubar">

<div class="view-ctrls text-center">

<div class="btn-group" role="group">

<button class="btn btn-default" ng-class="{'active-view': active_views[0]}" ng-click="toggleView(0)">R-Theta</button>

<button class="btn btn-default" ng-class="{'active-view': active_views[1]}" ng-click="toggleView(1)">Cartesian</button>

<button class="btn btn-default" ng-class="{'active-view': active_views[2]}" ng-click="toggleView(2)">Longitudinal</button>

<button class="btn btn-default" ng-class="{'active-view': active_views[3]}" ng-click="">Console</button>

</div>

</div>

</div>

<div id="views-cntnr">

<div class="r1">

<div id="v1" class="view">V1</div>

<div id="v2" class="view">V2</div>

<div id="v3" class="view">V3</div>

</div>

<div class="r2">

<div id="v4" class="view">V4</div>

</div>

</div>

<div id="frame-ctrl-cntnr">

<div id="frame-num" class="frame-ctrl"># X</div>

<div id="frame-range-cntnr" class="frame-ctrl">

<input type="range">

</div>

</div>

</section>

回答:

.analysis {

display: flex;

flex-direction: column;

}

/* MENUBAR */

.menubar {

padding: 4px 0 4px;

background-color: #eee;

}

/* menubar */

/* VIEWS */

#views-cntnr {

display: flex;

flex-direction: column;

flex-grow: 1;

}

/* ROW 1 */

.r1 {

display: flex;

}

.r1 .view {

flex-grow: 1;

border: black 1px solid;

border-right: none;

}

.r1 .view:last-child {

border-right: black 1px solid;

}

/* row 1 */

/* ROW 2 */

.r2 .view {

border: black 1px solid;

border-top: none;

}

/* row 2 */

/* views */

/* FRAME CTRL */

#frame-ctrl-cntnr {

display: flex;

}

.frame-ctrl {

border: black 1px solid;

border-top: none;

border-right: none;

}

.frame-ctrl:last-child {

border-right: black 1px solid;

}

#frame-num {

width: 50px;

}

#frame-range-cntnr {

flex-grow: 1;

padding: 4px;

}

/* frame ctrl */

回答:

您代码中的所有内容都可以正常工作。

唯一的问题是 。因此,高度解析为auto,表示内容的高度。

flex-grow属性在容器中分配 可用 空间。容器中没有可用空间,flex-grow因此无关。

尝试对CSS进行此调整:

.analysis {

display: flex;

flex-direction: column;

height: 100vh;

}

这告诉flex容器是视口的高度。现在,容器的高度比内容容器的高度高,您会注意到flex-grow它正在工作。

以上是 flex-grow在列布局中不起作用 的全部内容, 来源链接: utcz.com/qa/417402.html

回到顶部