/* La manera más sencilla, pero que puede que no funcione en todos los casos. */
body{
position: relative;
padding-bottom: 3em;/* Un poco más de lo que mida el footer de alto.*/
min-height: 100vh;
}
.footer{
position: absolute;
bottom: 0;
width: 100%;
}
/* La manera más eficiente con flexbox*/
body{
display: flex;
flex-direction: column;
min-height: 100vh;
}
.footer{
margin-top: auto;
}