Я використовував це, щоб приклеїти нижній колонтитул донизу, і він працював для мене:
HTML
<body>
<div class="allButFooter">
<!-- Your page's content goes here, including header, nav, aside, everything -->
</div>
<footer>
<!-- Footer content -->
</footer>
</body>
Це єдина модифікація, яку вам потрібно зробити в HTML, додати її div
з "allButFooter"
класом. Я робив це на всіх сторінках, на тих, які були такими короткими, я знав, що нижній колонтитул не буде триматися внизу, а також на сторінках досить довгих, що я вже знав, що треба прокручувати. Я зробив це, тому я міг бачити, що він працює нормально, якщо вміст сторінки динамічний.
CSS
.allButFooter {
min-height: calc(100vh - 40px);
}
"allButFooter"
Клас має min-height
значення , яке залежить від висоти видового екрану ( 100vh
означає 100% від висоти видового екрану) і висоту нижнього колонтитула, в тому , що я вже знав 40px
.
Це все, що я зробив, і це прекрасно працювало для мене. Я не пробував це в кожному браузері, лише в Firefox, Chrome і Edge, і результати були такими, як я хотів. Нижній колонтитул дотримується дна, і вам не доведеться возитися з z-індексом, позицією чи будь-якими іншими властивостями. Позиція кожного елемента в моєму документі була позицією за замовчуванням, я не змінював її на абсолютну, фіксовану чи нічого.
Робота з чуйним дизайном
Ось, що я хотів би прояснити. Це рішення, з тим самим Footer, який був високою 40 пікселів, не працював, як я очікував, коли я працював у чуйному дизайні, використовуючи Twitter-Bootstrap
. Мені довелося змінити значення, яке я віднімав у функції:
.allButFooter {
min-height: calc(100vh - 95px);
}
Це, мабуть, тому, що він Twitter-Bootstrap
має власні поля та прокладки, тому мені довелося коригувати це значення.
Сподіваюсь, це корисно для вас, хлопці! Принаймні, спробувати це просте рішення, яке не передбачає великих змін у всьому документі.