RushV, Исправил фиксированную высоту на минимальную. Теперь если блоки будут заполнены контентом, то они просто будут тянуться по высоте. В общем полная динамика и никого js
RushV, О какой пустоте идет речь? При любом размере экрана у вас футер будет прижат к подвалу, если вы все правильно сделаете. При чем высота любого блока может быть какой угодно, это единственное адекватное решение в 2018 году. Все решения на js и прочие костыли это устарело уже года так 3 назад
Хотел сделать на js не получилось
пришлось вот сделать min-height: 30vh;
А чем плох решение на js ? Реализация на js, получить высоту видимой области, получить высоту блоков, рассчитать отступы, добавить отступы такое сложно сделать?
RushV, По поводу js, Зачем использовать костыли? Нужно это делать, когда нет простого решения. Это все уже решается через css, при чем полностью динамически. То что у вас не получилось с первого раза, это просто нехватка опыта. Вы можете показать мне свой сайт и я постараюсь объяснить, как вам поступить конкретно в вашем случае.
Можно поискать что-то типа "прибить футер", 100vh, выше писали про js, самый лучший способ в плане кроссбраузерности, и как хороший вариант flex, flex-direction column.