Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

322
Visualizações
Cómo escalar y posicionar correctamente las imágenes dentro de los contenedores usando CSS

Estoy tratando de crear una página de memes y tener contenedores llenos de imágenes. Algunas imágenes son anchas y otras súper largas, quiero mostrarlas de tal manera que el contenedor tenga un tamaño establecido (por ejemplo, 50% del ancho de la pantalla, la altura puede ser automática) y la imagen interior esté recortada y centrada. Creo que lo mejor es ilustrarlo con algunas fotos.

Esto es lo que quiero:

ingrese la descripción de la imagen aquí

Y esto es lo que obtengo:

ingrese la descripción de la imagen aquí

La clave es obtener estas franjas blancas en la parte superior e inferior si la imagen es demasiado ancha e izquierda y derecha si la imagen es demasiado larga.

Aquí está mi código CSS:

 .homePage { width: 100%; min-height: calc(100vh - 80px); height: auto; display: flex; flex-direction: column; align-items: center; padding-top: 20px; } .homePage .post { width: 50%; background-color: rgb(250, 250, 250); box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; margin: 20px; padding: 20px; border-radius: 15px; } .post .postHeader { display: flex; justify-content: center; width: 100%; } .postHeader .title { flex: 50%; } .postHeader .deletePost { flex: 50%; display: flex; flex-direction: column; align-items: flex-end; } .deletePost button { border: none; background: none; font-size: 30px; cursor: pointer; } .post .postImgContainer { word-wrap: break-word; height: auto; width: 100%; display: flex; flex-direction: column; justify-content:center; overflow: hidden; overflow-y: auto; }

Y mi código HTML:

 <div className="homePage"> {imageLists.map((image) => { return ( <div className="post"> <div className="postHeader"> <div className="title"></div> </div> <div className="postImgContainer"> {" "} <img src={image}></img>{" "} </div> </div> ); })} </div>

Cada vez que cambio la dirección flexible de column a row en .postImgContainer , parece estar funcionando, pero solo para un caso de imágenes, el otro se estira.

¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Usando flex, puede colocar la imagen en la posición deseada dependiendo del ancho y alto máximo estipulado en el contenedor de la imagen. Espero que puedas verlo claramente con este ejemplo, avísame si realmente necesitas algo más.

Prueba esto:

 body { min-height: 100vh; } .container { width: 100%; background: blue; } .meme { width: 50%; margin: 15px auto; height: 600px; background: green; display: flex; justify-content: center; align-items: center; } .meme-img { max-height: 100%; max-width: 100%; }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div class="container"> <div class="meme"> <img src="https://cdn.pixabay.com/photo/2022/05/30/14/24/stairs-7231312_960_720.jpg" class="meme-img"> </div> <div class="meme"> <img src="https://cdn.pixabay.com/photo/2015/10/29/14/38/web-1012467_960_720.jpg" class="meme-img"> </div> </div> </body> </html>

about 4 years ago · Juan Pablo Isaza Relatório

0

Permita que los fondos CSS hagan magia. Podemos agregar una imagen de fondo en lugar de una imagen real, evitar que se repita, centrarla y contenerla.

Echa un vistazo a mi versión (simplificada):

 .wrapper { /* let's pretend it's a square */ height: 300px; width: 300px; /* the trick is background images (see HTML) we use some styles here to make it all work */ background-repeat: no-repeat; background-position: center; background-size: contain; /* just for the demo */ background-color: #f7f7f7; border-radius: 10px; box-shadow: 1px 2px 7px 0px rgba(0, 0, 0, .2); }
 <div class="wrapper" style="background-image: url(https://picsum.photos/600/300);"></div> <p><!-- an empty spacer --></p> <div class="wrapper" style="background-image: url(https://picsum.photos/300/600);"></div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda