/
Вопросы и ответы
/
CSS
/

Как прижать элемент к низу блока css

Как прижать элемент к низу блока css

5 лет назад

Человек-Молекула

Ответы

1

Простейший вариант для манипуляции одного блока относительно другого решается с помощью позиционирования. Исходный HTML файл:

1
2
3
4
5
6
7
<body>
 <div class="wrapper">
  <div class="content">i am a wrapper
    <div class="inside">i am inside</div>
  </div>
 </div>
</body>

Допустим необходимо блок с классом inside разместить в нижней части относительно блока с классом content:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.wrapper {
  /* Отцентрируем блоки для экспериментов и зададим им ширину*/
  margin: 100px auto;
  width: 300px;
}
.content {
  background-color: #38d9a9;
  height: 200px;
  position: relative;
}
  
.inside {
  /* абсолютное позиционирование */
  position: absolute;
  /* прижимаем блок к нижней границе относительно блока с position: relative*/
  bottom: 0;
  /* задаем ширину и цвет бэкграунда для наглядности*/
  width: 100%;
  height: 75px; 
  background-color: #444;
}

4 года назад

Вячеслав Межуревский

0

Чтобы прижать элемент к низу блока, сделайте блок flex-контейнером в колонку и дайте элементу margin-top: auto:

1
2
3
4
5
<div class="card">
  <h3>Заголовок</h3>
  <p>Описание разной длины</p>
  <button class="card__button">Купить</button>
</div>

margin-top: auto забирает свободное место сверху, и кнопка опускается вниз. Так кнопки в карточках разной высоты встают на одну линию.

Через абсолютное позиционирование

Если элемент должен стоять внизу поверх содержимого:

1
2
3
4
5
6
7
8
9
10
.card {
  position: relative;
}

.card__badge {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

Родителю обязательно нужен position: relative, иначе элемент прижмётся к низу страницы. Абсолютный элемент выпадает из потока: оставьте под него место через padding-bottom у родителя, чтобы он не закрыл текст.

Через grid

1
2
3
4
5
.card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  height: 300px;
}

Средняя строка растягивается, последняя — кнопка — оказывается внизу.

Почему не прижимается

  • У блока нет высоты. Прижать к низу можно только когда есть свободное место: задайте height, min-height или растяните блок в родительском flex-контейнере.
  • margin-top: auto не работает без display: flex или grid у родителя.
  • Для карточек в ряд одинаковой высоты контейнеру карточек тоже нужен display: flex — тогда карточки растянутся по самой высокой.

Flexbox и позиционирование разбирают в курсе «Профессиональная вёрстка».

10 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845