Cuando se trata de diseño web, los elementos visuales cautivadores pueden marcar la diferencia. Las imágenes desempeñan un papel crucial en la creación de una experiencia de usuario atractiva y memorable.

Pero, ¿cómo hacer que tus imágenes pasen de ordinarias a extraordinarias? Aquí es donde entra en juego el estilo de imagen. Con el poder del CSS a tu alcance, puedes dar rienda suelta a tu creatividad y transformar tus imágenes en elementos visuales cautivadores que dejen una impresión duradera.

En este artículo, nos sumergiremos en el mundo del estilo de imagen CSS, explorando muchas técnicas y propiedades que elevarán tus habilidades de diseño web a nuevas cotas.

Cómo Añadir Imágenes en HTML

Antes de poder dar estilo a una imagen, primero debes añadirla a tu documento HTML. Para ello, puedes utilizar la etiqueta <img>. La etiqueta <img> es una etiqueta de cierre automático (no requiere una etiqueta de cierre). Tiene un atributo src que especifica la URL o la ruta del archivo de la imagen que quieres mostrar.

<img src="image.jpg" alt="Description of the image">

También puedes proporcionar una URL absoluta o una ruta de archivo relativa a la imagen.

<img src="https://source.unsplash.com/tMHAmxLyzvA" alt="Boston city skyline">

El atributo alt significa texto alternativo y es esencial para la accesibilidad. La etiqueta <img> también proporciona dos atributos opcionales: width y height. Estos atributos te permiten especificar las dimensiones de la imagen en píxeles.

<img src="image.jpg" alt="Description of the image" width="300" height="200">

Sin embargo, generalmente se recomienda evitar el uso de los atributos width y height a menos que necesites mantener unas dimensiones específicas de la imagen. En su lugar, puedes utilizar CSS para controlar el tamaño de la imagen, lo que proporciona más flexibilidad en el diseño responsivo.

img {
  height: 200px;
  width: 700px;
}

Estilo de Imagen Responsivo

Aplicar valores específicos para los atributos width y height a una imagen puede tener consecuencias no deseadas, como comprimirla o distorsionarla. Esto es especialmente cierto si las dimensiones especificadas no coinciden con la relación de aspecto original de la imagen.

Imagen comprimida.
Imagen comprimida.

Para evitar estos problemas y mantener las proporciones adecuadas de la imagen, aquí es donde entra en juego el estilo de imagen responsivo. El estilo de imagen responsivo garantiza que las imágenes se adapten a diferentes tamaños de pantalla, lo que es crucial para el diseño web responsivo.

Puedes conseguirlo utilizando la propiedad max-width, que limita la anchura máxima de una imagen.

img {
  max-width: 100%;
  height: auto;
}
Imagen responsiva.
Imagen responsiva.

También puedes utilizar media queries para modificar el estilo de la imagen en función de los diferentes puntos de corte del dispositivo. Las media queries te permiten aplicar reglas CSS específicas en función del tamaño de la pantalla del dispositivo, su orientación y otras características. Por ejemplo:

@media screen and (max-width: 600px) {
  .my-image {
    max-width: 50%;
  }
}

Utilizar Object-Fit para Mantener la Relación de Aspecto y Evitar el Encogimiento

A veces, hay situaciones en las que necesitas especificar una anchura y altura concretas para una imagen. En tales casos, puedes utilizar la propiedad CSS object-fit para controlar cómo se comporta la imagen dentro de sus dimensiones especificadas.

La propiedad object-fit te permite especificar cómo debe encajar una imagen dentro de su contenedor manteniendo su relación de aspecto. Puede tomar varios valores, como

  • fill: Este valor estira o aplasta la imagen para que encaje exactamente en su contenedor, pudiendo provocar distorsiones.
  • contain: Este valor escala la imagen proporcionalmente para que quepa dentro del contenedor sin recortarla, manteniendo la relación de aspecto. Garantiza que toda la imagen sea visible dentro del contenedor, pudiendo provocar espacios vacíos.
  • cover: Este valor escala la imagen proporcionalmente para cubrir el contenedor manteniendo la relación de aspecto. Puede dar lugar a que se recorten los bordes de la imagen para garantizar que llene todo el contenedor.
  • none: Este valor no aplica ninguna escala ni recorte, y la imagen conservará su tamaño original, desbordando potencialmente el contenedor.
Resultado para estilos populares de ajuste de objetos.
Resultado para estilos populares de ajuste de objetos.

Aquí tienes un ejemplo de uso de la propiedad de ajuste a objeto:

img {
  width: 300px;
  height: 300px;
  object-fit: cover;
}

Crear Imágenes con Esquinas Redondeadas con CSS

Añadir esquinas redondeadas a las imágenes puede darles un aspecto más suave y visualmente atractivo.

Con CSS, puedes conseguir fácilmente este efecto aplicando la propiedad border-radius a la imagen.

A continuación te explicamos cómo puedes crear imágenes con esquinas redondeadas:

img {
  border-radius: 10px;
}

En el ejemplo anterior, establecemos la propiedad border-radius en 10px. Ajusta el valor a tu preferencia para controlar la redondez de las esquinas. Este valor puede utilizar las unidades que prefieras, como rem, porcentaje, etc.

Imagen con esquinas redondeadas.
Imagen con esquinas redondeadas.

Crear Imágenes Circulares con CSS

Para que tus imágenes sean perfectamente circulares, combina la propiedad border-radius con dimensiones iguales de anchura y altura.

Aquí te explicamos cómo crear imágenes circulares:

img {
  border-radius: 50%;
  width: 200px;
  height: 200px;
}

En el ejemplo anterior, la propiedad border-radius se establece en 50%, lo que crea un círculo haciendo que la curva del borde sea la mitad de la anchura o altura de la imagen.

También puedes utilizar la propiedad clip-path. Te permite definir una trayectoria de recorte para un elemento, creando formas únicas.

Aquí tienes un ejemplo de una imagen recortada en un círculo:

img {
  clip-path: circle(50%);
  width: 200px;
  height: 200px;
}

Centrar Imágenes con CSS

Alinear las imágenes en el centro de su contenedor es una práctica habitual en el diseño web. Hay muchas formas de conseguirlo; una es establecer la propiedad display de la imagen en block y aplicar margin: 0 auto, que centra horizontalmente la imagen dentro de su contenedor.

img {
  display: block;
  margin: 0 auto;
  width: 700px;
}
Imagen centrada.
Imagen centrada.

Crear Imágenes Transparentes

Puedes utilizar CSS para aplicar el efecto de transparencia deseado para hacer transparente una imagen. La propiedad opacity te permite controlar el nivel de transparencia de un elemento, incluidas las imágenes.

Un valor de 1 representa la opacidad total (completamente visible), mientras que 0 representa la transparencia total (completamente invisible).

img {
  opacity: 0.5;
}

La opacidad de la imagen en el código anterior está ajustada a 0.5, lo que produce un efecto semitransparente. Puedes ajustar el valor de la opacidad para conseguir el nivel de transparencia deseado.

Imagen transparente.
Imagen transparente.

Colocar Texto en las imágenes

Colocar texto sobre las imágenes puede crear diseños visualmente atractivos e informativos. Para colocar texto sobre una imagen, puedes utilizar una combinación de posicionamiento CSS y z-index.

Aquí tienes un ejemplo:

 // HTML
<div class="image-container">
  <img src="https://source.unsplash.com/tMHAmxLyzvA" alt="Boston city skyline" >
  <div class="image-text">Welcome to Kinsta</div>
</div>

// CSS
.image-container {
  position: relative;
}


.image-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  color: white;
  font-size: 20px;
  font-weight: bold;
}

En el código anterior, el image-container div sirve de contenedor tanto para la imagen como para el texto superpuesto. La propiedad position: relative se aplica al contenedor para establecer un contexto de posicionamiento. A continuación, se utiliza la clase image-text para posicionar el texto de forma absoluta dentro del contenedor utilizando position: absolute, y las propiedades top, left y transform para centrarlo. La propiedad z-index garantiza que el texto aparezca por encima de la imagen, y puedes personalizar aún más el aspecto del texto con el color, el tamaño y el peso de la fuente.

Ten en cuenta que los valores específicos de posicionamiento y estilo pueden ajustarse para adaptarse a tus preferencias y requisitos de diseño.

Voltear Imágenes: Crear Efectos Reflejados

Voltear imágenes puede añadir un elemento visual interesante a tu diseño web. Tanto si quieres crear un efecto de espejo como voltear una imagen vertical u horizontalmente, CSS proporciona técnicas sencillas para conseguir este efecto.

Volteo Horizontal

Para voltear horizontalmente una imagen, puedes utilizar la propiedad transformar con la función scaleX(). El valor scaleX(-1) voltea la imagen a lo largo del eje horizontal.

img {
  transform: scaleX(-1);
}

Volteo Vertical

Para voltear verticalmente una imagen, puedes utilizar la propiedad transformar con la función scaleY(). El valor scaleY(-1) voltea la imagen a lo largo del eje vertical.

img {
  transform: scaleY(-1);
}

Volteo Diagonal

Para crear un efecto de volteo diagonal, combina las funciones scaleX() y scaleY() dentro de la propiedad transform.

img {
  transform: scaleX(-1) scaleY(-1);
}

En el código anterior, la imagen se reflejará horizontal y verticalmente, dando lugar a un efecto de volteo diagonal.

Volteo horizontal, vertical y diagonal de la imagen.
Volteo horizontal, vertical y diagonal de la imagen.

Añadir Filtros a las Imágenes: Mejorar los Efectos Visuales

Los filtros pueden transformar el aspecto de las imágenes, permitiéndote crear efectos visuales únicos. CSS proporciona una serie de propiedades de filtro que pueden aplicarse a las imágenes, permitiéndote ajustar el brillo, el contraste, la saturación, etc.

Puedes utilizar la propiedad filter para aplicar un filtro a una imagen. Esta propiedad acepta varias funciones de filtro, cada una de las cuales altera diferentes aspectos de la imagen.

img {
  filter: brightness(150%);
}

En el código anterior, se aplica a la imagen la función brightness(150%). Esto aumenta el brillo de la imagen en un 150%.

Funciones de Filtro de Uso Común

Aquí tienes algunas funciones de filtro de uso común:

  • brightness(): Ajusta el brillo de la imagen.
  • contrast(): Modifica el contraste de la imagen.
  • saturate(): Modifica el nivel de saturación de la imagen.
  • grayscale(): Convierte la imagen a escala de grises.
  • blur(): Aplica un efecto de desenfoque a la imagen.
  • sepia(): Aplica un efecto de tono sepia a la imagen.

Puedes experimentar con diferentes funciones y valores de filtro para conseguir los efectos visuales deseados. Combinar varios filtros también puede producir transformaciones más intrincadas.

Crear Superposiciones al Pasar el Ratón sobre las Imágenes

Las sobreimpresiones en imágenes pueden aportar interactividad e interés visual a tu sitio web. Cuando un usuario pasa el ratón por encima de una imagen, se puede aplicar un efecto de superposición, como una superposición de color o una leyenda de texto.

CSS proporciona varias técnicas para conseguir superposiciones de hover(pasar el ratón); una forma es utilizar transiciones CSS. Mediante la transición de propiedades específicas de un elemento, puedes animar suavemente los cambios al pasar el ratón por encima de una imagen.

// HTML
<div class="image-container">
  <img src="image.jpg" alt="Description of the image">
  <div class="overlay"></div>
</div>

// CSS
.image-container {
  position: relative;
  display: inline-block;
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.image-container:hover .overlay {
  opacity: 1;
}

En el código anterior, un elemento .image-container envuelve la imagen y un elemento .overlay. La superposición es inicialmente transparente (opacity: 0) y cubre toda la imagen. Al pasar el ratón por encima de .image-container, la opacidad de .overlay pasa a 1, revelando la superposición de colores.

Para conseguir el efecto visual deseado, puedes personalizar la superposición ajustando las propiedades background-color y opacidad.

Resumen

Estilizar imágenes con CSS abre un mundo de posibilidades creativas, permitiéndote mejorar el atractivo visual y la interactividad de tus páginas web.

Cuando estilices imágenes con CSS, ten siempre en cuenta la accesibilidad, la capacidad de respuesta y el rendimiento.

¿Cuál es el estilo de imagen CSS que más utilizas? ¿Cuál es el que más te interesa? Háznoslo saber en los comentarios.

Joel Olawanle Kinsta

Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 200 technical articles majorly around JavaScript and it's frameworks.