Сделайте детей divs высотой самого высокого ребенка
У меня есть два дочерних элемента <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/
Ответы
Ответ 1
Одним из решений является изменение отображаемого значения от inline-block
до table-cell
для элементов-потомков div.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;
}
Пример
Ответ 2
Другим решением является использование 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 для установки высоты вручную.
Ответ 3
jquery version: FIDDLE
var maxheight = 0;
$('div div.y').each(function () {
maxheight = ($(this).height() > maxheight ? $(this).height() : maxheight);
});
$('div div.y').height(maxheight);
EDIT: просто заметили, что вы не имеете дело с высотой <div>
, но <p>