35

<div>如图所示,我在父容器中有两个子元素<div>

<div class="row">
    <div class="item">
        <p>Sup?</p>
    </div>
    <div class="item">
        <p>Sup?</p>
        <p>Wish that other guy was the same height as me</p>
    </div>
</div>

我尝试了以下 CSS:

.item {
    background: rgba(0,0,0,0.1);
    display: inline-block;
}

.row {
    border: 1px solid red;
}

我怎样才能让两个孩子(div.item)成为最高孩子的身高?

jsfiddle:http: //jsfiddle.net/7m4f7/

4

3 回答 3

24

一种解决方案是将后代元素的显示值从inline-block更改为:table-celldiv.item

.row {
    border: 1px solid red;
    display: table;
    border-spacing: 20px; /* For controlling spacing between cells... */
}
.item {
    background: rgba(0,0,0,0.1);
    display: table-cell;
}

例子

于 2013-05-16T18:38:56.720 回答
14

另一种解决方案是使用 flexbox:http: //jsfiddle.net/7m4f7/4/

.item {
    background: rgba(0,0,0,0.1);
    -webkit-box-flex: 1;
    -moz-box-flex: 1;
    -webkit-flex: 1;
    -ms-flex: 1;
    flex: 1;
}

.row {
    border: 1px solid red;
    display: -webkit-box;
    display: -moz-box;
    display: -webkit-flexbox;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
}

然而,支持是有限的(但越来越好!)见http://caniuse.com/flexbox

否则,您需要使用 javascript 手动设置高度。

于 2013-05-16T18:42:25.187 回答
10

jQuery版本:小提琴

var maxheight = 0;

$('div div.y').each(function () {
    maxheight = ($(this).height() > maxheight ? $(this).height() : maxheight); 
});

$('div div.y').height(maxheight);

编辑:刚刚注意到你不是在处理 's 的高度<div>,而是<p>'s

于 2013-05-16T19:02:21.140 回答