Как сделать что бы Footer всегда был в внизу, но не фиксированным?
Простой пример.
Относительно вашего примера:
Оберните всё в блок и присвойте ему два свойстваposition: relative;
height: 100%;
А для того чтобы избежать пробела снизу при высоком экране и недостатке контента, добавьте ещеmin-height: 100vh;
https://jsfiddle.net/groog/e30nchas/16/