Tôi muốn một footer dính linh hoạt , đó là lý do tại sao tôi đến đây. Câu trả lời hàng đầu đã đưa tôi đi đúng hướng.
Hiện tại (2 tháng 10) Bootstrap 3 css Chân trang dính (Kích thước cố định) trông như thế này:
html {
position: relative;
min-height: 100%;
}
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
/* Set the fixed height of the footer here */
height: 60px;
background-color: #f5f5f5;
}
Miễn là chân trang có kích thước cố định, phần dưới lề cơ thể tạo ra một lực đẩy để cho phép một túi để chân trang ngồi vào. Trong trường hợp này, cả hai đều được đặt thành 60px. Nhưng nếu chân trang không cố định và vượt quá chiều cao 60px, nó sẽ bao phủ nội dung trang của bạn.
Làm cho linh hoạt: Xóa lề cơ thể css và chiều cao chân trang. Sau đó thêm JavaScript để lấy chiều cao chân trang và đặt lề lềBottom. Điều đó được thực hiện với hàm setfooter (). Tiếp theo thêm trình lắng nghe sự kiện khi trang tải lần đầu tiên và khi thay đổi kích thước chạy chương trình setfooter. Lưu ý: Nếu chân trang của bạn có một cây đàn accordion hoặc bất cứ thứ gì khác kích hoạt thay đổi kích thước, mà không thay đổi kích thước cửa sổ, bạn phải gọi lại hàm setfooter ().
Chạy đoạn trích và sau đó toàn màn hình để demo nó.
function setfooter(){
var ht = document.getElementById("footer").scrollHeight;
document.body.style.marginBottom = ht + "px";
}
window.addEventListener('resize', function(){
setfooter();
}, true);
window.addEventListener('load', function(){
setfooter();
}, true);
html {
position: relative;
min-height: 100%;
}
.footer {
position: absolute;
bottom: 0;
width: 100%;
/* additional style for effect only */
text-align: center;
background-color: #333;
color: #fff;
}
body{
/* additional style for effect only not needed in bootstrap*/
padding:0;
margin: 0;
}
<div>
Page content
<br> <br>
line 3
<br> <br>
line 5
<br> <br>
line 7
</div>
<footer id="footer" class="footer">
<div class="container">
<p class="text-muted">Footer with a long text, so that resizing, to a smaller screen size, will cause the footer to grow taller. But the footer will not overflow onto the main page.</p>
</div>
</footer>