Quería un pie de página flexible y flexible , por eso vine aquí. Las mejores respuestas me llevaron en la dirección correcta.
El actual (2 oct 16) Bootstrap 3 css Sticky footer (tamaño fijo) se ve así:
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;
}
Siempre que el pie de página tenga un tamaño fijo, el margen inferior del cuerpo crea un empuje para permitir un bolsillo para el pie de página. En este caso, ambos están configurados en 60px. Pero si el pie de página no es fijo y supera los 60 píxeles de altura, cubrirá el contenido de su página.
Hacer flexible: elimine el margen del cuerpo CSS y la altura del pie de página. Luego agregue JavaScript para obtener la altura del pie de página y establecer el margen del cuerpoBottom. Eso se hace con la función setfooter (). A continuación, agregue escuchas de eventos para cuando la página se carga por primera vez y al cambiar el tamaño que ejecuta el setfooter. Nota: Si su pie de página tiene un acordeón o cualquier otra cosa que active un cambio de tamaño, sin cambiar el tamaño de la ventana, debe llamar a la función setfooter () nuevamente.
Ejecute el fragmento y luego pantalla completa para demostrarlo.
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>