Почему не происходит схлопывание margin?

У меня есть родитель, внутри которого расположен дочерний элемент. Можно увидеть, что схлопывание марджинов происходит только сверху родительского элемента. Например:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  width: 300px;
  height: 300px;
  background: green;
  margin: 0 auto;
}

.child {
  width: 50px;
  height: 100%;
  background: yellowgreen;
  margin-top: 80px;
}
<div class="parent">
  <div class="child"></div>
</div>

"Внизу" родительского элемента этого схлопывания не происходит.

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  width: 300px;
  height: 300px;
  background: green;
  margin: 0 auto;
}

.child {
  width: 50px;
  height: 100%;
  background: yellowgreen;
  margin-bottom: 80px;
}
<div class="parent">
  <div class="child"></div>
</div>

Нижний отступ дочернего элемента игнорируется. Хотя по идее должно быть так:

Margin самого контейнера и margin первого блока накладываются, и в итоге место перед контейнером равно наибольшему из них. Тоже самое происходит и внизу с нижними margin'ами контейнера и последнего вложенного блока.

Проблема в том, что в последнем примере элемент не является последним? Вот:

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.parent {
  width: 300px;
  height: 300px;
  background: green;
  margin: 0 auto;
}

.child {
  width: 100%;
  height: 50%;
  background: yellowgreen;
}

.child_2 {
  width: 100%;
  height: 50%;
  background: purple;
  margin-bottom: 80px;
}
<div class="parent">
  <div class="child"></div>
  <div class="child_2"></div>
</div>

Результат тот же... Чего именно я не понимаю?


Ответы (0 шт):