2014-11-21 75 views
0

使用CSS我想获得一个div来填充也包含固定高度div的动态大小的容器。CSS:如何填充包含固定大小元素的动态容器?

div (请参阅代码段)如何填充剩余的可用空间而不溢出?

  • grey div .Fill里面不能有任何东西。
  • 我宁愿只使用CSS Flex作为最后的手段

FIDDLE

html,body{height:100%;} 
 
.Wrap{ 
 
    height:100%; 
 
    width:50%; 
 
} 
 
.H40,.H60{ 
 
    display:block; 
 
    padding:15px; 
 
    box-sizing:border-box; 
 
} 
 
.H40{   
 
    height:40%; 
 
    background:#b00; 
 
} 
 
.H60{ 
 
    height:60%; 
 
    background:#58c; 
 
} 
 
.Top{ 
 
    background:#8d5; 
 
    height:40px; 
 
} 
 
.Fill{ 
 
    height:100%; 
 
    width:100%; 
 
    background:#DDD; 
 
}
<div class="Wrap"> 
 
    <div class="H40"> 
 
     <div class="Top">TOP</div> 
 
     <div class="Fill">Fill this space</div> 
 
    </div> 
 
    <div class="H60"> 
 
     <div class="Top">TOP</div> 
 
     <div class="Fill">Fill this space</div> 
 
    </div> 
 
</div>

+0

如果'fill' divs不会包含任何东西......他们的目的是什么? – 2014-11-21 10:10:36

+0

填充div包含javascript生成的内容,这些内容将覆盖innerhtml中的任何内容。 – Obsidian 2014-11-21 10:13:19

+0

@akz你错了......这正是我想要的。多么愚蠢的我忘记计算。工作很好。 – Obsidian 2014-11-21 10:19:06

回答

1

我觉得display:tabledisplay:table-rowdisplay:table-cell会解决这个问题。

JSfiddle Demo

* { 
 
    box-sizing: border-box; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
html,body{height:100%;} 
 
.Wrap{ 
 
    height:100%; 
 
    width:50%; 
 
} 
 
.H40,.H60{ 
 
    display: table; 
 
    padding:15px; 
 
    height:100%; 
 
    width:100%; 
 

 
} 
 
.H40{ 
 
    height:40%; 
 
    background:#b00; 
 
} 
 
.H60{ 
 
    height:60%; 
 
    background:#58c; 
 
} 
 
.Top{ 
 
    display: table-row; 
 
    background:#8d5; 
 
    height:40px; 
 
} 
 

 
.fill { 
 
    display: table-cell; 
 
    background: #ccc; 
 
    height:100%; 
 
}
<div class="Wrap"> 
 
    <div class="H40"> 
 
     <div class="Top">TOP</div> 
 
     <div class="fill"></div> 
 
    </div> 
 
    <div class="H60"> 
 
     <div class="Top">TOP</div> 
 
     <div class="fill"></div> 
 
    </div> 
 
</div>

+0

感谢你。我已经尝试过这种方法,但是在盒子内容的比例方面有一些问题。在接受答案之前,我会再次尝试确定这不是我的错误。 – Obsidian 2014-11-21 10:31:57

0

height:calc(100% - 20px);加入。填入您的CSS。

相关问题