我有页面结构为:

<div class="parent">
    <div class="child-left floatLeft">
    </div>

    <div class="child-right floatLeft">
    </div>
</div>

现在,左子DIV将有更多的内容,因此父DIV的高度会随着子DIV的增加而增加。

但问题是适合儿童的身高并没有增加。如何让它的高度等于它的父结点?


当前回答

对于父节点:

display: flex;

儿童:

align-items: stretch;

你应该添加一些前缀,检查caniuse。

其他回答

CSS表显示是理想的:

.parent { 显示:表; 宽度:100%; } .parent > div { 显示:表格单元; } .child-left { 背景:浅蓝色; } .child-right { 背景:番木瓜; } < div class = "父" > < div class = "让孩子“> < / div > < div class = "生" >高< br >高< / div > < / div >

原来的答案(假设任何一列都可以更高):

你试图让父结点的高度依赖于子结点的高度而子结点的高度依赖于父结点的高度。不会计算。CSS Faux列是最好的解决方案。有不止一种方法。我宁愿不使用JavaScript。

<div class="parent" style="height:500px;">
<div class="child-left floatLeft" style="height:100%">
</div>

<div class="child-right floatLeft" style="height:100%">
</div>
</div>

我使用内联样式只是为了表达想法。

对于父节点:

display: flex;

儿童:

align-items: stretch;

你应该添加一些前缀,检查caniuse。

我最近在我的网站上用jQuery做了这个。该代码计算最高div的高度,并将其他div设置为相同的高度。技巧如下:

http://www.broken-links.com/2009/01/20/very-quick-equal-height-columns-in-jquery/

我不相信高度:100%将工作,所以如果你不明确知道div高度,我不认为有一个纯粹的CSS解决方案。

如果你了解bootstrap,你可以通过使用'flex'属性轻松完成。你所需要做的就是将下面的css属性传递给父div

.homepageSection {
  overflow: hidden;
  height: auto;
  display: flex;
  flex-flow: row;
}

其中。homepagesection是我的父div。 现在在你的html中添加子div

<div class="abc col-md-6">
<div class="abc col-md-6">

abc是我的子div,你可以检查两个子div的高度相等,而不考虑边界,只要给子div边界