Cómo este es un tema siempre complejo, ya que debemos de comprender todo lo relacionado a las posiciones relativas de los elementos, cómo también, entender exactamente a que cosas de mi documento HTML le estoy dando estilos y cómo estos estilos se aplican a los objetos hijos. Les comparto la manera en que logré centrar imágenes dentro de un div
.
En este ejemplo usaremos la siguiente estructura HTML. Donde estamos haciendo la creación de una card.
HTML Objects
<section class="cards">
<divclass="card"><p>Motorcycle</p><imgsrc="https://fotos.jornaldocarro.estadao.com.br/uploads/2020/01/31112429/a1d89f5309854f840e5ee43c0f37096b.jpg"alt="Motorcycle"><p>Future</p></div></section>
CSS InitialStyles
body{
display: grid;
flex-direction: column;
}
.boxes{
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 1px;
justify-items: center;
justify-content: center;
width: 100%;
margin: 10px;
}
.card{
width: 300px;
height: 300px;
background: papayawhip;
border-radius: 20px;
overflow: hidden;
border: solid 5px black;
box-sizing: border-box;
}
Con el código anterior, directamente no se puede ver la imagen que acabamos de poner ya que hacen falta unos cuantos estilos más. Así que analicemos que podemos hacer:
.cardimg{
height: 200px;
}
.cardimg{
height: 200px;
margin-left: auto;
margin-right: auto;
}
block
nos permite hacer que un elemento ocupe todo el ancho que puede (en este caso todo el ancho de la card) y ya que, nosotros tenemos el alto especificado y el navegador automáticamente decide el ancho de la imagen, finalmente esta queda correctamente centrada..cardimg{
height: 200px;
margin-left: auto;
margin-right: auto;
display: block;
}
Y así, logras centrar una imagen sin morir en el intento.