CSS Выровнять верхнюю часть дочернего контейнера по нижней части родительского контейнера

#html #css

#HTML #css

Вопрос:

Рассмотрим этот HTML

 <div class="parent">
    <a href="#">Parent</a>
    <div class="child">
        <a href="#">Child</a>
    </div>
</div>
 

То, что я хочу сделать, это расположить верхнюю часть child в нижней части parent .

Вот мой CSS до сих пор:

 .parent {
    position: relative;
}

.child {
    position: absolute;
    left: 0;
    bottom: 0;
}
 

Это достигается следующим образом:

Пример 1

Чего я хочу добиться, так это:

Пример 2

Пожалуйста, обратите внимание: я не знаю высоту ни родительского, ни дочернего контейнера и на самом деле не хочу устанавливать произвольную высоту, и я не хочу возвращаться к использованию JavaScript.

Комментарии:

1. разве вы не можете просто бросить <br> туда и установить это заполнение и поля, если это необходимо?

Ответ №1:

 .parent {
    position: relative;
    background-color: #F00;
}

.child {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: #00F;
}
 

Комментарии:

1. Сейчас я чувствую себя очень глупо, это то, top: 100% что я искал

Ответ №2:

Вы можете сделать это с помощью transform: translateY(100%)

Функция translateY() CSS перемещает элемент вертикально на плоскости. Это преобразование характеризуется <length> определением того, насколько оно перемещается по вертикали.
translateY(ty) это ярлык для translate(0, ty) .

введите описание изображения здесь

 .parent {
    position: relative;
    background: red;
    width: 50%;
    height: 50vh;
}

.child {
    position: absolute;
    left: 0;
    bottom: 0;
    background: blue;
    height: 100px;
    width: 100px;
    transform: translateY(100%);
} 
 <div class="parent">
    <a href="#">Parent</a>
    <div class="child">
        <a href="#">Child</a>
    </div>
</div>