DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
16-09-2014

En esta entrada veremos una técnica que permite que una imagen de fondo cubra todo el ancho del navegador web.

Definiendo el HTML

En el HTML no hay ninguna novedad; HTML clásico con el contenido que desees mostrar:

<html>
<html>
<body>
  Su contenido
</body>
</html>

Definiendo el CSS

Expliquemos las reglas que componen a nuestro CSS; todas son opcionales a excepción de una:

(Obligatorio) background-size

Emplearemos el valor cover de la propiedad background-size de CSS que nos hará casi todo el trabajo; en conjunto con otras reglas que ayudarán a mejorar la experiencia final.

La propiedad background-size define cómo se va a mostrar la imagen a establecer en el fondo; con el valor cover: "especifica que la imagen de fondo debe ser escalada lo más pequeño como sea posible asegurando al mismo tiempo tanto en sus dimensiones mayores o iguales que a las dimensiones correspondientes al área de posicionamiento de fondo." (Mozilla Developer ).

Para entender un poco mejor la idea veamos un par de ejemplos; te invito a que redimensiones la ventana y vea su comportamiento:

background-size: cover;

(Opcional) background-position

Permite controlar la posición de las imágenes de fondo; con el valor center center; centrar la imagen en sus coordenadas X y Y; emplear esta propiedad es opcional pero recomendable debido a que generalmente el contenido más impactante de la imagen esta ubicado en el medio de la misma.

background-position: center center;

(Opcional) background-attachment

Establece el comportamiento que tendrá la imagen cuando hay un scroll presente; con el valor fixed se mantiene en una posición fija incluso cuando haya scroll en su elemento contenedor, tiene un comportamiento similar al de la regla posicion: fixed;.

background-attachment: fixed;

A la final estas son todas las reglas a aplicar:

  background-attachment: fixed;
  background-position: center center;
  background-size: cover;
  background-image: url(img/background_2500.jpg);

(Opcional) Media Query

Otro posible agregado consisten en el uso de los Media Query; con los Media Query se pueden establecer imágenes acorde a la resolución del dispositivo (teléfono, tablet, computador) que está accediendo a la página; es decir si el usuario accede desde un dispositivo que tenga una resolución de 1280x720 píxeles no tiene mucho sentido utilizar una imagen con dimensiones mayores ya que el detalle no se va a apreciar y además, tardaría más tiempo en cargar; esto lógicamente afecta el rendimiento en general del site y la experiencia del usuario final; utilizar una imagen de menores dimensiones a la resoluciòn del dispositivo tampoco es buena idea en la mayoría de las ocasiones porque se mostraría pixeladas; podríamos establecer unos Media Querys como los siguientes:

@media only screen and (max-width: 480px) {
  body {
    background-image: url(images/background_480.jpg);
  }
}

@media only screen and (max-width: 1280px) {
  body {
    background-image: url(images/background_1280.jpg);
  }
}

Cada media query contiene una sencilla regla que indica la url de la imagen a cargar; como podrás haberte dado cuenta, el nombre de la imagen indica el ancho de la misma; es decir:

Básicamente se especifican una serie de reglas que se ejecutan o no dependiendo de las dimensiones de la pantalla del dispositivo que accede al site, específicamente del valor máximo del ancho que puede tener la pantalla del dispositivo para ejecutar su CSS interno; es decir, si un usuario accede con un dispositivo que tiene 480px o 320px de ancho, se ejecutará el primer media query y esto evitará la carga de la imagen que posee un ancho de 2500px, si el dispositivo tiene 980px o 1280px de ancho, entonces se ejecutará la segunda regla; de esta forma son cargadas imágenes de menores dimensiones y por lo tanto de un menor peso que se ajustan de una mejor a las especificaciones del dispositivo; hay que tener en cuenta que cargar una imagen de mayor dimensiones a la que se necesite solo traerá que se ralentice la carga del site.

Puedes ver el ejemplo final dando clic aquí.


Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

Modelo de tarjetas con CSS

Modelo de tarjetas con CSS

Sistema sola con CSS

Sistema sola con CSS

Loader variados con CSS

Loader variados con CSS

Algunos artículos que te pueden interesar

Las curvas de béziers en las animaciones CSS: caso Google Chrome

Las curvas de béziers en las animaciones CSS: caso Google Chrome

Los loaders son un recurso de los más vistosos y necesarios en cualquier aplicación al momento de realizar una tarea que requiera tiempo; en esta entrada veremos cómo crear un par de loaders.

Andrés Cruz 15-10-2015

Efectos con hover y transition en CSS (parte 1)

Efectos con hover y transition en CSS (parte 1)

En esta entrada veremos algunos experimentos con transiciones en CSS empleando además selectores (hover, after y before).

Andrés Cruz 25-06-2015

La propiedad background-clip en CSS

La propiedad background-clip en CSS

La propiedad background-clip permite especificar si el fondo (compuesto por un color y/o imagen) se debe mostrar detrás de su borde.

Andrés Cruz 19-01-2015