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

198
Vistas
Flexbox espacio entre pero centro si un elemento

Tengo el siguiente HTML y CSS.

 <div class="container-box"> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> </div>
 .container-box { width: 200px; display: flex; flex-direction: row; justify-content: space-between; background-color: red; margin:50px; } .box { background-color: #9009A0; height: 50px; width: 50px; }

Lo que da este diseño:

diseño CSS

El primer diseño para varios elementos hace lo que espero, pero ¿cómo puedo cambiar el segundo para colocar el elemento en el centro, ya que solo tiene un elemento?

Vea este codepen: https://codepen.io/dennismadsen/pen/oNvqjjV

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para los casos en los que tiene un elemento en el contenedor, puede usar la pseudoclase :only-child .

Agregue esto a su código:

 .box:only-child { margin: 0 auto; } 

 .container-box { width: 200px; display: flex; flex-direction: row; justify-content: space-between; background-color: red; margin: 50px; } .box { background-color: #9009A0; height: 50px; width: 50px; } .box:only-child { margin: 0 auto; }
 <div class="container-box"> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> </div>

En tales casos, los márgenes auto flexibles anularán justify-content porque:

§ 8.1. Alineación con márgenes auto

Antes de la alineación a través justify-content y align-self , cualquier espacio libre positivo se distribuye a los márgenes automáticos en esa dimensión.


Más sobre :only-child :

§ 6.6.5.10. :only-child

La :only-child representa un elemento que no tiene hermanos. Igual que :first-child:last-child o :nth-child(1):nth-last-child(1) , pero con una especificidad menor.


Más información sobre los márgenes auto flexibles:

  • En CSS Flexbox, ¿por qué no hay propiedades "justify-items" y "justify-self"?

Además, para resaltar algunos comportamientos flexibles interesantes, si estuviera usando space-around en lugar de space-between , no necesitaría márgenes auto .

  • El elemento flexible debe alinearse a la izquierda, no al centro, cuando se envuelve
over 4 years ago · Santiago Trujillo Denunciar

0

Para obtener información, también podría usar juntos :first-child y :last-child si quisiera tener en cuenta los navegadores muy antiguos;)

 .container-box { width: 200px; display: flex; flex-direction: row; justify-content: space-between; background-color: red; margin: 50px; } .box { background-color: #9009A0; height: 50px; width: 50px; } .container-box .box:first-child:last-child { margin: 0 auto; }
 <div class="container-box"> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> </div>

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay una idea diferente con solo margen:

 .container-box { width: 400px; display: flex; background-color: red; margin: 30px; } .box { background-color: #9009A0; height: 50px; width: 50px; } .box:first-child { margin-right: auto; } .box:last-child { margin-left: auto; }
 <div class="container-box"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> </div>

Si tendrá más de 3 elementos, puede agregar una regla adicional

 .container-box { width: 400px; display: flex; background-color: red; margin: 30px; } .box { background-color: #9009A0; height: 50px; width: 50px; } .box:not(:last-child):not(:first-child) { margin:auto; } .box:first-child { margin-right: auto; } .box:last-child { margin-left: auto; }
 <div class="container-box"> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> <div class="box"></div> </div> <div class="container-box"> <div class="box"></div> </div>

over 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