Одним из решений является установка родительского элемента flexbox, такого как body
, и выравнивание элементов по вертикальной оси. В этом примере я добавляю элемент main
, который, используя flex-grow: 1
, занимает наибольшее пространство, доступное в родительском контейнере. Родитель установлен на min-height: 100vh
, что означает, что он по крайней мере такой же высоты, как и полный видовой экран. footer
затем занимает оставшееся место. Если содержимое main
станет достаточно высоким, footer
будет естественным образом перемещено вниз по странице.
html,
body {
margin: 0;
}
body {
display: flex;
min-height: 100vh;
flex-direction: column;
}
main,
footer {
padding: 2em;
}
main {
flex-grow: 1;
background-color: salmon;
}
footer {
background-color: transparent;
text-align: center;
}
<main>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique debitis, repellat adipisci, id facere quia sequi dicta corrupti necessitatibus quibusdam non nihil tempora, ipsum, sint. Voluptate a harum illo, non.</p>
</main>
<footer>
© Copyright 2019. All Rights Reserved.<br>
<a href="mailto:kaijumydude@gmail.com">KaijuMyDude@gmail.com</a>
</footer>
jsFiddle