Como crear imágenes Responsive con CSS

Crear páginas web con imágenes que se adapten a celulares y tablets, es prácticamente indispensable.

Aquí te enseño 4 ejemplos con una técnica simple y efectiva.

Los ejemplos que vamos a ver se basan en el uso simple de HTML, CSS y algo CSS3 al final.

Vamos con el primer ejemplo:

1 – Imagen Responsive Básica

Comenzamos con un DIV contenedor que incluirá una imagen.

<div>
   <img src="image01.jpg" width="960" height="640" />
 </div>

Ahora aplicaremos una serie de reglas con contenedor de dicha imagen para que el mismo tenga un ancho del 96% del ancho de la pantalla, pero que el mismo no supere los 960px.
También le colocamos un margen de 0 para arriba y abajo y AUTO para el izquierdo y derecho. Asi logramos que quede centrado.

div.container {
width: 96%;
max-width: 960px;
margin: 0 auto;
}
img {
width: 100%;
height: auto;
}

También le incluí un ancho del 100% a la imagen y un alto en automatico, con eso logramos que tome el ancho completo del DIV contenedor y la altura se respete proporcionalmente.

RESUMEN: en este ejemplo logramos una imagen responsive (adaptable) pero que no supere los 960px de ancho.

>> Ver ejemplo

2 – Imágenes responsive en columnas

Hay veces que necesitamos que las imágenes se muestren unas pegadas a otras, por ejemplo en una galería de fotos.

Para eso solo debemos colocar la propiedad “display: inline-block” a la etiqueta IMG, y de esta forma se mostraran una al lado de otra.

Pero debemos añadirla algo adicional dependiendo de la cantidad de columnas a mostrar.

Veamos…

Imágenes Responsive a 2 columnas

Para obtener 2 columnas, debemos colocar la propiedad “width: 48%”, que representaría poco menos de la mitad del contenedor (el 2% restante lo usaríamos de márgenes)

Esto lo hacemos creando una clase CSS llamada “two-columns “ y aplicándosela a las imágenes.

Entonces para el HTML seria:

<div>
  <img class="two-columns" src="image01.jpg" width="960" height="640" />
  <img class="two-columns" src="image02.jpg" width="960" height="640" />
</div>

Y para la clase CSS:

.two-columns {
width: 48%;
display: inline-block;
}

Imágenes Responsive a 3 columnas

Para obtener 3 columnas supongo que ya habrás deducido como es. Solo creamos otra clase modificando el porcentaje de ancho a 32%.

Para el HTML:

<div>
<img class="three-columns" src="image01.jpg" width="960" height="640" />
<img class="three-columns" src="image02.jpg" width="960" height="640" />
<img class="three-columns" src="image03.jpg" width="960" height="640" />
</div>

Y para el CSS:

.three-columns {
width: 32%;
display: inline-block;
}

>> Ver ejemplo

3 – Imágenes con Breakpoints

Aquí nos introducimos de lleno en Responsive Design usando un poco de CSS3.

Los breakpoints se usan para realizar cambios en la visualización de una pagina web, dependiendo del ancho del dispositivo donde se esté viendo.

Crearemos 4 imágenes que se mostrarán en 1 columna en dispositivos pequeños (teléfonos inteligentes ), en 2 columnas en dispositivos medianos (tablets), y en 4 columnas en grandes dispositivos (equipos de escritorio).

Creamos la estructura HTML de 4 imágenes y le aplicamos una clase que crearemos llamada “breakpoint”:

<div>
<img class="breakpoint" src="image01.jpg" width="960" height="640" />
<img class="breakpoint" src="image02.jpg" width="960" height="640" />
<img class="breakpoint" src="image03.jpg" width="960" height="640" />
<img class="breakpoint" src="image04.jpg" width="960" height="640" />
</div>

Y luego los CSS para cada ancho de pantalla:

/* 1 columna para smartphones */
breakpoint  {
max-width: 100%;
display: inline-block;
}
/* 2 columnas para tablets */
@media (min-width: 420px) {
breakpoint  {
max-width: 48%;
}
}
/* 4 columnas para grandes dispositivos*/
@media (min-width: 760px) {
breakpoint  {
max-width: 24%;
}
}

>> Ver ejemplo

4 – Imagen responsive de ancho completo

Para obtener imágenes responsive de ancho completo, lo único que hay que hacer es configurar el ancho del DIV contenedor de la imagen a 100% o dejarlo sin ancho.

Y luego a la etiqueta de la imagen colocarle un ancho del 100%.

En CSS:

.container {
width: 100%;
}

En HTML:

<div class="container">
<img  src="image01.jpg" width="100%" />
</div>

 

De esta forma hemos realizado 4 ejemplos de adaptación de imágenes responsive.

Descarga AQUI  los códigos de ejemplo para usarlos directamente en tus páginas:
descargar

[sociallocker id=»2457″] ** Descargar ejemplos **
[/sociallocker]

 

PARA TERMINAR

Este ejemplo es una pequeña parte de mi curso completo de Responsive Design.

Si quieres aprender a crear sitios web completamente adaptables a móviles, sea el diseño que sea,  te recomiendo mi curso “Responsive Design desde Cero”.

En el mismo te enseño con un ejemplo real, a crear páginas web cuyos elementos se adapten automáticamente al dispositivo con el que se lo esté navegando.

>> Mira los detalles del curso <<

 

Cursos de desarrollo web:

[featured_products per_page="12" columns="4"]

Diseñador y Programador Web Full-Stack especializado en PHP / MySQL / Laravel / Wordpress / HTML5 / CSS3 / JS.

13 thoughts on “Como crear imágenes Responsive con CSS

  1. Miguel Reply

    Hola, muchas gracias por este artículo. Para los entusiasta como yo en esto del desarrollo de páginas web es muy útil.

  2. Fuji Kanagawa Reply

    Hola! Te escribo desde Japón. Tu tutorial está muy bueno gracias me sirvió de mucha inspiración. Pero como soy nuevo en armar webs quiero que por favor me seas una mano. Tengo un WordPress que estoy armándolo es el Customizr Pro y también lo subí con el Child theme pero no me responde tus códigos. Será que falta algo más? Puedes darme una mano por favor ? Deseo poner algunas fotos en una página. Probé con la tabla normal como hace Excel pero no se regulan las fotos para ver en los móviles pequeños. Ahora quiero usar tu código y no funciona.

    1. Cristian Carrera Post author Reply

      Hola Fiju
      Deber poder entrar a tu WordPress y ver como tiene armado el Child Theme y que codigos son los que quieren poner.
      Sin verlo se me complica mucho, disculpame.
      Saludos!

  3. Dan Reply

    Hola!! Muchisimas gracias, tu articulo me ayudó muchisimo, ya por fin comprendí la receta para hacer responsivas las imagenes!!
    Saludos!

  4. iosef escandon Reply

    Buen dia me ayudo bastante este articulo, me gustaria saber como podria poner un subtitulo o hipervinculo debajo de cada imagen.

  5. juan Reply

    hola !! muy útil tu consejos.
    Tengo una duda , Tengo 2 imágenes en mi sitio , una de ellas mas grande que la Otra ,digamos una de 1000px 300px y otra 300px 100px, al momento de cambiar el tamaño del dispositivo la pequeña no logro que se me encoja al mismo tiempo que se encoje la grande , osea necesito que cuando sea un dispositivo pequeño las 2 se vuelvan pequeñas proporcionalmente, la pequeña solo se empieza volver pequeña cuando llego a la pantalla menor a 300px.

    Gracias de antemano

    1. Cristian Carrera Post author Reply

      Fijate en las @mediaqueries como las tenes configuradas. Sino utiliza la regla CSS: max-width

  6. josue Reply

    hola me pueden ayudar, necesito un codigo completo donde pueda colocar 5 imagenes de 1280×720 pero que sea responsibe, como cabecera para mi pkg, e buscado en todo y no encuentro uno, e conseguido si pero no son responsive, podrian hacer esa ayuda y codigo gracias

  7. Gean paul arambulo aquijes Reply

    Lo estas haciendo con un ancho fijo en la imagen podrías hacerlo esa misma imagen pero que el contenedor padre sea de 400 px de alro y ancho.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.