Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

340
Vistas
¿Cómo centrar CSS Grid pero elementos secundarios al principio?

Quiero implementar este diseño con CSS Grid o Flexbox. Si es necesario, también es posible utilizar JS.

ingrese la descripción de la imagen aquí

En las imágenes, puede ver cómo se deben organizar los elementos secundarios al agregar 1, 2, 3 y 4 elementos secundarios en una secuencia

El contenido se genera dinámicamente. Es decir, se desconoce el número de elementos secundarios. Puede haber un máximo de 3 elementos secundarios en una fila. Los elementos de la cuadrícula deben estar centrados. Todo el diseño también debe ser receptivo.

 .parent { background-color: red; display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 20px; justify-content: center; /* 3* 350px width of child elements + 2*20px gap*/ max-width: 1090px; padding: 20px; } .child { width: 350px; height: 450px; background-color: blue; }
 <div class="parent"> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> </div>

Actualmente no responde (si es posible sin consultas de medios) y los elementos secundarios no están centrados.

¿Sabes cómo puedo implementar este diseño?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No defina 3 columnas, pero confíe en la creación de columnas implícitas:

 .parent { background-color: red; display: grid; grid-auto-columns: calc((100% - 2*20px)/3); /* size of one column */ grid-gap: 20px; justify-content: center; margin: 10px; } .child { height: 50px; background-color: blue; } /* place each item in the adequate column */ .child:nth-child(3n + 1) {grid-column: 1} .child:nth-child(3n + 2) {grid-column: 2} .child:nth-child(3n + 3) {grid-column: 3}
 <div class="parent"> <div class="child"></div> </div> <div class="parent"> <div class="child"></div> <div class="child"></div> </div> <div class="parent"> <div class="child"></div> <div class="child"></div> <div class="child"></div> </div> <div class="parent"> <div class="child"></div> <div class="child"></div> <div class="child"></div> <div class="child"></div> </div>

about 4 years ago · Santiago Trujillo Denunciar

0

Creo que tengo algo para esto usando cuadrículas implícitas:

 * { box-sizing: border-box; } body { display: flex; flex-direction: column; gap: 50px; background: #000; } section { width: 100%; padding: 30px; background: #666; } .grid-inner { display: grid; gap: 30px; justify-content: center; grid-auto-columns: calc(33% - 15px); } .box { padding: 30px; background: white; border: 1px solid black; } .box:nth-child(2) { grid-column: 2; } .box:nth-child(3) { grid-column: 3; }
 <section> <div class="grid-inner"> <div class="box"></div> </div> </section> <section> <div class="grid-inner"> <div class="box"></div> <div class="box"></div> </div> </section> <section> <div class="grid-inner"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> </section> <section> <div class="grid-inner"> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> </section> <section> <div class="grid-inner"> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> </section>

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda