Tôi đã sử dụng cái này để dán chân trang của tôi xuống phía dưới và nó hoạt động với tôi:
HTML
<body>
<div class="allButFooter">
<!-- Your page's content goes here, including header, nav, aside, everything -->
</div>
<footer>
<!-- Footer content -->
</footer>
</body>
Đó là sửa đổi duy nhất bạn phải thực hiện trong HTML, thêm nó div
vào "allButFooter"
lớp. Tôi đã làm điều đó với tất cả các trang, những trang quá ngắn, tôi biết phần chân trang sẽ không dính vào đáy và cũng là những trang đủ dài mà tôi đã biết mình phải cuộn. Tôi đã làm điều này, vì vậy tôi có thể thấy rằng nó hoạt động tốt trong trường hợp nội dung của trang là động.
CSS
.allButFooter {
min-height: calc(100vh - 40px);
}
Các "allButFooter"
lớp học có một min-height
giá trị mà phụ thuộc vào chiều cao của khung nhìn ( 100vh
có nghĩa là 100% chiều cao khung nhìn) và chiều cao của chân, mà tôi đã biết được 40px
.
Đó là tất cả những gì tôi đã làm, và nó hoạt động hoàn hảo với tôi. Tôi đã không thử nó trên mọi trình duyệt, chỉ có Firefox, Chrome và Edge và kết quả như tôi muốn. Chân trang dính vào đáy và bạn không phải lộn xộn với chỉ số z, vị trí hoặc bất kỳ thuộc tính nào khác. Vị trí của mọi yếu tố trong tài liệu của tôi là vị trí mặc định, tôi đã không thay đổi nó thành tuyệt đối hoặc cố định hoặc bất cứ điều gì.
Làm việc với thiết kế đáp ứng
Đây là một cái gì đó tôi muốn làm rõ. Giải pháp này, với cùng Footer cao 40px không hoạt động như tôi mong đợi khi tôi làm việc trong một thiết kế đáp ứng bằng cách sử dụng Twitter-Bootstrap
. Tôi đã phải sửa đổi giá trị mà tôi đã trừ trong hàm:
.allButFooter {
min-height: calc(100vh - 95px);
}
Điều này có lẽ là do Twitter-Bootstrap
đi kèm với lề và phần đệm riêng của nó, vì vậy đó là lý do tại sao tôi phải điều chỉnh giá trị đó.
Tôi hy vọng đây là một số sử dụng cho các bạn! Ít nhất, đó là một giải pháp đơn giản để thử, và nó không liên quan đến việc tạo ra những thay đổi lớn cho toàn bộ tài liệu.