Fixed Footer Backgrounds con CSS definitivo

Fixed Footer Backgrounds con CSS definitivo

fixed-footer-backgrounds-css

Tras una entrada en la que indicamos como crear un footer de fondo que quedase pegado al bottom de la ventana, ha habido comentarios diciendo que el truco no funcionaba bien. Esto se debe a que este hack CSS es muy antiguo, por eso algunos navegadores actuales no pueden interpretarlo correctamente.

Por eso hemos querido actualizar dicho hack y ahora os ofrecemos una versión mucho más moderna, compatible con todos los navegadores actuales.

Para crear una imagen que quede “pegada” al bottom de la ventana, debemos seguir estos pasos:


HTML

Añadir este código HTML a nuestro documento:

<div class="headwrap">
<!--Tu contenido-->
<div class="container"></div>
<!--Fin del contenido-->
</div>

CSS

En la etiqueta del cuerpo usaremos una imagen fixed y repetida horizontalmente, posicionada en el bottom.

body {
margin: 0;
padding: 0;
background: #005094 url(footer_bg.jpg) fixed repeat-x left bottom;
width: 100%;
min-width:970px;/*--Fixes Background Bug--*/
}

Después añadiremos nuestro fondo de la cabecera en un div:

.headwrap {
background: url(body_bg.jpg) no-repeat center top;
float: left;
width: 100%;
}

Estandarización

XHTML 1.0 Transitional válido (1 error por haber olvidado crear una etiqueta alt, nada más).

CSS 2.1 válido.

Ejemplo

Podemos ver un ejemplo de su funcionamiento.

Probablemente haya otras maneras de conseguir este efecto, si lo sabes, dínos la tuya.

ACTUALIZACIÓN: Deambulante nos cuenta su forma de hacer un footer fixed con CSS:

Primero definir el #container de la siguiente forma:

#container {
width:100%;
margin:0;
min-height:100%;
background:#E3D9C6;
}
/* IE Hack*/
* html #container {height:100%;}

Luego meter todo el contenido de su web en esa gran div, y luego del cierre de la misma agregar la div #footer:

#footer {
position:relative;
height:40px;
margin:-40px auto 0;
}

Como verán, la página les quedaría de un height de 100% + 40px, pero al asignarle un margen negativo al footer, el height final sería de 100% + 40px – 40px, logrando el efecto esperado.
luego, a la div footer le definen el background que quieran y además, le pueden agregar texto sin problemas.

Se puede ver un ejemplo de la técnica de Deambulante en tikalcerámica.

Vía | Sohtanaka

Autor de CSSBlog ES
  • pos si funciona y esta de pelos muchas gracias por el aporte
  • si, es valido y ademas compatible IE (probe desde las versiones 5.5 a 8), compatible con Firefox y con el Konqueror. (tanto en linux como en windows). En los demas navegadores no probe.
  • CSSBlog
    @Deambulante tiene CSS y XHTML válido? Podríamos añadir esta forma en la entrada. Un saludo.
  • es que no me interesa q se vea cuando se achica la ventana. ademas, si le tiro un bottom:0, cuando el contenido del container se pase del 100%, el footer va a quedar en la posicion orginal (bottom=0) tapando el contenido de la pagina. por eso me conformo con definir el height al 100%, quien navega con la ventana desmaximizada?

    lo que quiero decir es q no es que este mal mi codigo, elegi hacerlo de esa forma porq tanto con position fixed (el footer te sigue a donde vayas con el scrollbar), como la que acabo de nombrar, el footer toma demasiada importancia hasta el punto de ser molesto
  • CSSBlog
    @Deambulante en tu forma de hacerlo, cuando minimizas la ventana haciendo que "choque" con el texto, el header se "despega" del bottom.

    Un saludo.
  • aca les dejo otro ejemplo del footer bien abajo donde tiene q estar :)
    http://fedeviarnes.com.ar/
  • el container no tiene q tener ese background eh! jajaj
  • no le encuentro un buen uso a esa forma, si bien coloca una imagen en el fondo y la deja ahi, no es flexible a la hora de colocar texto. la forma q utilizo yo, q el resultado lo pueden ver en esta pagina> www.tikalceramica.com.ar/index0.php es la siguiente:

    primero definir el #container de la siguiente forma:

    #container {
    width:100%;
    margin:0;
    min-height:100%;
    background:#E3D9C6;
    }
    /* IE Hack*/
    * html #container {height:100%;}

    luego meter todo el contenido de su web en esa gran div, y luego del cierre de la misma agregar la div #footer:

    #footer {
    position:relative;
    height:40px;
    margin:-40px auto 0;
    }

    como veran, la pagin les quedaria de un height de 100% + 40px, pero al asignarle un margen negativo al footer, el height final seria de 100% + 40px - 40px, logrando el efecto esperado.
    luego, a la div footer le definen el background q quieran y ademas, le pueden agregar texto sin problemas.
blog comments powered by Disqus

Sigue este blog por:

Patrocinadores

  • Últimos comentarios

    Patrocinadores


    Get Adobe Flash playerPlugin by wpburn.com wordpress themes