Чтобы прикрепить div
к нижней части страницы, вы можете использовать различные методы CSS. Вот несколько подходов, которые вы можете рассмотреть:
- Позиция: абсолютная
Вы можете установить для свойстваposition
div
значениеabsolute
, а затем использоватьдно: 0
, чтобы разместить его внизу страницы. Убедитесь, что родительский контейнер имеет свойствоposition
, отличное отstatic
.
.container {
position: relative;
}
.sticky-div {
position: absolute;
bottom: 0;
}
- Flexbox
Используя Flexbox, вы можете использовать свойствоalign-self
для выравниванияdiv
в конце контейнера.
.container {
display: flex;
flex-direction: column;
min-height: 100vh; /* Ensure the container takes up the full viewport height */
}
.sticky-div {
align-self: flex-end;
}
- Grid
Если вы используете CSS Grid, вы можете использовать свойствоgrid-template-rows
, чтобы создать сетку со строкой, занимающей оставшееся пространство. Поместитеdiv
в эту строку.
.container {
display: grid;
grid-template-rows: 1fr auto; /* The last row takes up the remaining space */
min-height: 100vh; /* Ensure the container takes up the full viewport height */
}
.sticky-div {
grid-row: 2;
}
- Position: Sticky
Свойствоposition: Sticky
позволяет элементу оставаться в обычном потоке документа до тех пор, пока не будет достигнута определенная позиция прокрутки. Применитеposition: Sticky
иbottom: 0
кdiv
.
.sticky-div {
position: sticky;
bottom: 0;
}
<старый старт="5">
Если приведенные выше методы CSS не соответствуют вашим требованиям, вы также можете добиться этого с помощью JavaScript. Вот пример использования jQuery:
$(window).on('load resize', function() {
var windowHeight = $(window).height();
var contentHeight = $('.container').outerHeight();
var divHeight = $('.sticky-div').outerHeight();
var footerHeight = $('footer').outerHeight();
if (windowHeight > contentHeight + footerHeight) {
$('.sticky-div').css('position', 'fixed').css('bottom', '0');
} else {
$('.sticky-div').css('position', 'relative');
}
});