Как сделать div по высоте равным высоте родителя?

V
На сайте с 04.06.2014
Offline
54
1193

Есть родительский блок .products, в котором расположено 3 блока .item. Как сделать высоту .item равной высоте .products, чтобы каждый .item был одинаковой высоты. А затем сделать .description одинаковой высоты через height: calc(100% - 228px);

HTML:

<div class="products">


<div class="item">
<div class="icon"></div>
<div class="title">Книги</div>
<div class="description">
<p></p>
</div>
</div>

<div class="item">
<div class="icon"></div>
<div class="title">Вебинары</div>
<div class="description">
<p></p>
</div>
</div>

<div class="item">
<div class="icon"></div>
<div class="title">Курсы</div>
<div class="description">
<p></p>
</div>
</div>

<div class="clear"></div>
</div>

CSS:

header .item {

float: left;
width: calc((100% - 40px)/3);
}

header .item:nth-child(2) {
margin: 0 20px;
}

header .item .icon {
margin: 0 0 15px 0;
height: 163px;
}

header .item:nth-child(1) .icon {
background: url(../images/header__product1_icon.png) center no-repeat;
}

header .item:nth-child(2) .icon {
background: url(../images/header__product2_icon.png) center no-repeat;
}

header .item:nth-child(3) .icon {
background: url(../images/header__product3_icon.png) center no-repeat;
}

header .item .title {
height: 50px;
-webkit-border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
background: -webkit-linear-gradient(to right, #af5bfc, #859afa);
background: -moz-linear-gradient(to right, #af5bfc, #859afa);
background: -ms-linear-gradient(to right, #af5bfc, #859afa);
background: -o-linear-gradient(to right, #af5bfc, #859afa);
background: linear-gradient(to right, #af5bfc, #859afa);
font-weight: 700;
font-size: 23px;
line-height: 50px;
color: #fff;
text-transform: uppercase;
text-align: center;
}

header .item .description {
padding: 20px;
background: #fff;
}

header .item .description p {
padding: 0 0 6px 0;
font-size: 13px;
line-height: 17px;
color: #510f8d;
}

header .item .description p:last-child {
padding: 0;
}
Партнёрка №1 в essay-нише (https://goo.gl/YfTPtG)
Ragnarok
На сайте с 25.06.2010
Offline
226
#1

victorpavloff, я обычно такие штуки через min-height делаю, не знаю, на сколько это правильно

//TODO: перестать откладывать на потом
V
На сайте с 04.06.2014
Offline
54
#2
Ragnarok:
victorpavloff, я обычно такие штуки через min-height делаю, не знаю, на сколько это правильно

Вёрстка резиновая. И высота блоков при разной ширине окна разная. Тут min-height наверное не подходит.

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#3
victorpavloff:
Вёрстка резиновая. И высота блоков при разной ширине окна разная. Тут min-height наверное не подходит.

Прописать медиа запросами для каждой ширины - свой :)

Ну или вот, например:

http://htmlbook.ru/blog/div-nye-kolonki-odinakovoy-vysoty-na-css

(там есть еще несколько статей на тему)

Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
V
На сайте с 04.06.2014
Offline
54
#4
DiKiJ:
Прописать медиа запросами для каждой ширины - свой :)

Ну или вот, например:
http://htmlbook.ru/blog/div-nye-kolonki-odinakovoy-vysoty-na-css
(там есть еще несколько статей на тему)

Ваш вариант по ссылке работать отказывается.

tomasoyer
На сайте с 24.03.2013
Offline
55
#5

js

Берем все блоки, считаем высоту в цикле, самое большое число применяем ко всем.

ffreest
На сайте с 22.08.2010
Offline
109
#6

Зайди на сайт в моей подписи у меня там все работает, будут вопросы пиши в личку, я сам долго возился с этим.

Размести бесплатно объявление по продаже готового бизнеса по недвижимости твой адрес (https://tvoyadres.ru/nedvizhimost/biznesy/). Узнай реальную стоимость своей квартиры оценка квартиры онлайн (https://tvoyadres.ru/ocenka/kvartira/).
TA
На сайте с 12.06.2009
Offline
116
TiA
#7
victorpavloff:
Есть родительский блок .products, в котором расположено 3 блока .item. Как сделать высоту .item равной высоте .products, чтобы каждый .item был одинаковой высоты. А затем сделать .description одинаковой высоты через height: calc(100% - 228px);

Самый простой способ - это указать для .products свойства


display: table;
width: 100%;

а для .products .item:


display: table-cell;
width: 33.3%;
background: #fff;

из недостатков - этот способ подходит, когда нужно выстроить записи в один ряд.

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
dma84
На сайте с 21.04.2009
Offline
168
#8

Посмотрите в сторону FlexBox

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий