Oto rozwiązanie, które nie wymaga, aby stopka być umieszczone na zewnątrz głównego elementu otoki, który jest jak większość ludzi struktury ich strony.
html,
body {
margin: 0;
height: 100%;
}
.wrapper {
box-sizing: border-box;
position: relative;
padding-bottom: 1em; /* Height of footer */
min-height: 100%;
}
header {
background-color: #cff;
}
footer {
position: absolute;
bottom: 0;
width: 100%;
color: #fff;
background-color: #000;
}
<div class="wrapper">
<header>I am the header.</header>
<article>I am content that doesn't fill the page. The footer will appear at the bottom of the browser window. However, when I do fill the page, you will need to scroll down to see the footer.</article>
<footer>I am the footer.</footer>
</div>
Objaśnienie
Element owijka wypełni 100% wysokości widoku. (Możesz także użyć 100vh dla opakowania, jeśli nie chcesz ustawiać wysokości html i elementów body.) Opakowanie ma również dolny margines, aby utworzyć element zastępczy stopki do siedzenia.
Stopka jest bezwzględnie umieszczona na dole owijki i znajduje się w symbolu zastępczym utworzonym przez dolną wyściółkę owijki.
Oznacza to, że jeśli strona nie ma pasków przewijania, stopka zostanie umieszczona na samym dole. Jeśli jednak zawartość pasków przewijania jest wystarczająca, stopka zostanie przesunięta poniżej zawartości.
Zobacz moją odpowiedź tutaj: https://stackoverflow.com/questions/15960290/css-footer-not-displaying-at-the-bottom-of-the-page/48286159#48286159 – CodyBugstein