首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当父元素具有固定的高度时,填写可变数量的子元素的高度。

当父元素具有固定的高度时,填写可变数量的子元素的高度。
EN

Stack Overflow用户
提问于 2017-06-14 08:50:49
回答 2查看 54关注 0票数 1

我有一个容器元素,它有固定的高度。我希望这个容器元素的子元素完全填充容器元素的高度,在子元素之间平均分配高度。这里的挑战是子元素的数量可以在2到5个元素之间变化。

代码语言:javascript
复制
.container-element {
  height: 200px;
  border: solid black 1px;
  margin-bottom: 20px;
}

.child-element {
  background: grey;
}

.child-element:nth-child(even) {
  background: darkGrey;
}
代码语言:javascript
复制
<div class="container-element">
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
</div>

<div class="container-element">
  <div class="child-element">
    Dummy content2
  </div>
  <div class="child-element">
    Dummy content2
  </div>
</div>

我最初的想法是向容器元素中添加一个类,它有驻留在容器中的子元素的数量(即class="container-element elements-3"),并根据这个类使子元素的高度百分比发生变化。

但是,我想知道是否可以填充父元素的高度,而不管存在多少子元素,而不必向所有父容器添加不同的类。

Sidenote:这必须在IE10中工作

小提琴手

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-14 08:58:25

这是柔性箱的经典案例。Flexbox是使用部分由IE10支持-ms- prefix,所以这应该可以在IE10中工作(我没有办法检查它):

代码语言:javascript
复制
.container-element {
  display: -ms-flexbox;
  /* TWEENER - IE 10 */
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  height: 200px;
  border: solid black 1px;
  margin-bottom: 20px;
}

.child-element {
  -ms-flex: auto 1;
  flex: 1;
  background: grey;
}

.child-element:nth-child(even) {
  background: darkGrey;
}
代码语言:javascript
复制
<div class="container-element">
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
  <div class="child-element">
    Dummy content
  </div>
</div>

<div class="container-element">
  <div class="child-element">
    Dummy content2
  </div>
  <div class="child-element">
    Dummy content2
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2017-06-14 09:02:49

工作小提琴:https://jsfiddle.net/ash06229/urtnw14x/4/

它将在IE-10上工作。

将以下属性添加到下面的类中

代码语言:javascript
复制
.container-element {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.child-element {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44539919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档