Muchos desarrolladores luchan al trabajar con imágenes. Manejar la capacidad de respuesta y la alineación es particularmente difícil, especialmente al centrar una imagen en el medio de la página.
Entonces, en esta publicación, mostraré algunas de las formas más comunes de centrar una imagen tanto vertical como horizontalmente usando diferentes propiedades CSS.
Revisé las propiedades de Posición y Visualización de CSS en mi publicación anterior. Si no está familiarizado con esas propiedades, le recomiendo que consulte esas publicaciones antes de leer este artículo.
Aquí hay una versión en video si quieres verla:
Centrado de una imagen horizontalmente
Comencemos por centrar una imagen horizontalmente usando 3 propiedades CSS diferentes.
Texto alineado
La primera forma de centrar una imagen horizontalmente es utilizando la text-align
propiedad. Sin embargo, este método solo funciona si la imagen está dentro de un contenedor a nivel de bloque como :
div { text-align: center; }
Margen: Automático
Otra forma de centrar una imagen es usando la margin: auto
propiedad (para margen izquierdo y margen derecho).
Sin embargo, usar margin: auto
solo no funcionará para imágenes. Si necesita usar margin: auto
, hay 2 propiedades adicionales que debe usar también.
La propiedad margin-auto no tiene ningún efecto sobre los elementos de nivel en línea. Dado que la
etiqueta es un elemento en línea, primero debemos convertirlo en un elemento a nivel de bloque:
img { margin: auto; display: block; }
En segundo lugar, también necesitamos definir un ancho. Entonces, los márgenes izquierdo y derecho pueden tomar el resto del espacio vacío y auto alinearse, lo que hace el truco (a menos que le demos un ancho del 100%):
img { width: 60%; margin: auto; display: block; }
Pantalla: Flex
La tercera forma de centrar una imagen horizontalmente es usando display: flex
. Al igual que usamos la text-align
propiedad para un contenedor, también usamos display: flex
para un contenedor.
Sin embargo, usar display: flex
solo no será suficiente. El contenedor también debe tener una propiedad adicional llamada justify-content
:
div { display: flex; justify-content: center; } img { width: 60%; }
La justify-content
propiedad funciona junto con display: flex
, que podemos utilizar para centrar la imagen horizontalmente.
Finalmente, el ancho de la imagen debe ser menor que el ancho del contenedor, de lo contrario, ocupa el 100% del espacio y luego no podemos centrarlo.
Importante: la display: flex
propiedad no es compatible con versiones anteriores de navegadores. Consulte aquí para obtener más detalles.
Centrar una imagen verticalmente
Pantalla: Flex
Para la alineación vertical, el uso display: flex
vuelve a ser realmente útil.
Considere un caso en el que nuestro contenedor tiene una altura de 800 px, pero la altura de la imagen es de solo 500 px:
div { display: flex; justify-content: center; height: 800px; } img { width: 60%; height: 500px; }
Ahora, en este caso, agregar una sola línea de código al contenedor align-items: center
, hace el truco:
div { display: flex; justify-content: center; align-items: center; height: 800px; }
La align-items
propiedad puede colocar elementos verticalmente si se usa junto con display: flex
.
Posición: Propiedades absolutas y de transformación
Otro método para la alineación vertical es usar las propiedades position
y transform
juntas. Este es un poco complicado, así que hagámoslo paso a paso.
Paso 1: Definir posición absoluta
En primer lugar, cambiamos el comportamiento de posicionamiento de la imagen de static
a absolute
:
div { height: 800px; position: relative; background: red; } img { width: 80%; position: absolute; }
Además, debe estar dentro de un contenedor relativamente posicionado, por lo que agregamos position: relative
a su contenedor div.
Paso 2: Defina las propiedades superior e izquierda
En segundo lugar, definimos las propiedades superior e izquierda de la imagen y las configuramos al 50%. Esto moverá el punto de inicio (arriba a la izquierda) de la imagen al centro del contenedor:
img { width: 80%; position: absolute; top: 50%; left: 50%; }
Paso 3: definir la propiedad de transformación
Pero el segundo paso ha movido la imagen parcialmente fuera de su contenedor. Entonces tenemos que traerlo de vuelta al interior.
Definir una transform
propiedad y agregar -50% a sus ejes X e Y hace el truco:
img { width: 80%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
Hay otras formas de centrar las cosas horizontal y verticalmente, pero he explicado las más comunes. Espero que esta publicación te haya ayudado a comprender cómo alinear tus imágenes en el centro de la página.
Si desea obtener más información sobre el desarrollo web, no dude en visitar mi canal de Youtube para obtener más información.
¡Gracias por leer!