Можно ли сделать так, чтобы если блок меньше высоты окна страницы(короткое объявление), то футер был бы прижат к нижней части окна браузера, а если блок больше и появляется скролл, то футер бы был сразу под этим блоком?
Это просто реализовать с помощью flexbox в роли контейнера:
let cntnt = document.getElementById('content');
cntnt.addEventListener('click', function () {
this.innerHTML += '<p>параграф</p>';
});
html,
body {
margin: 0;
padding: 0;
}
#page {
height: 100vh;
display: flex;
flex-direction: column;
font: 16px sans-serif;
color: #fff;
}
#page > div,
#content > p {
padding: 10px;
text-align: center;
}
#page > div { flex 0 0 auto; }
#content { background-color: #44a; }
#footer {
margin-top: auto;
background-color: #4a4;
}
<div id="page">
<div id="content">кликайте по этому блоку<br>для увеличения его высоты</div>
<div id="footer">футер</div>
</div>
Принцип здесь очень прост:
Вертикальное направление дочерних элементов контейнера задается стилем flex-direction: column
.
Стиль flex 0 0 auto
у дочерних блоков "отключает" заполнение ими свободного пространства, и сжатие при увеличении размера "соседей" - но позволяя при этом автоматически подстраиваться под размеры содержимого.
При малой высоте блока контента, футер "прилипает" к нижнему краю за счет margin-top: auto
.
Что можно почитать о flexbox:
Используем CSS Flexible Boxes (MDN)
A Complete Guide to Flexbox (CSS-Tricks)
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть несколько checkbox-ов,нужно чтобы выбирался 1 или 2 checkbox, а остальные выбирались независимо от нихid, name не меняются так как используются в программе
Возможно ли сделать так, чтобы при нажатии на дочерний элемент одного родительского блока , менялись стили другого родительского блока, только...
Начал изучать electron и столкнулся с проблемой - никак не получалось подключить своиcss и