设置元素相对于父元素的高度-其中parent是flexbox的一部分

时间:2018-12-01 23:42:56

标签: html css css3 flexbox

请考虑以下html:

<div class="box">
  <div class="row header">
    <p><b>header</b>
      <br />
      <br />(sized to content)</p>
  </div>
  <div class="row content">
    <p>
      <b>content</b>
      (fills remaining space)
    </p>
    <div class="subcontent">
    test
    </div>
  </div>
  <div class="row footer">
    <p><b>footer</b> (fixed height)</p>
  </div>
</div>

我希望将div subcontent的宽度设置为内容div的“ 50%”。 (因此,页面大小也可以显示)。

以下CSS应该“这样做”:

html,
body {
  height: 100%;
  margin: 0
}

.box {
  display: flex;
  flex-flow: column;
  height: 100%;
  background-color: grey;
}

.box .row {
  border: 1px dotted black;
}

.box .row.header {
  flex: 0 1 auto;
  /* The above is shorthand for:
  flex-grow: 0,
  flex-shrink: 1,
  flex-basis: auto
  */
}

.box .row.content {
  flex: 1 1 auto;
}

.box .row.footer {
  flex: 0 1 40px;
}

.subcontent {
  background-color: blue;
  height: 50%;
  position: absolute;

}

但是我注意到subcontent现在是用视口而不是父div缩放的。这不是我想要的。 (实际上,我希望子内容正好是父对象的100%,减去父对象的边距-而我事先不知道的那些边距,它们是基于路由的,因此是基于javascript动态页面生成的。)

0 个答案:

没有答案