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

773
Vistas
¿Por qué React Native no ofrece una auto-justificación?

Quiero alinear un elemento en el eje principal. Por ejemplo, quiero tener una fila con algunos niños alineados a la izquierda y luego un niño alineado a la derecha.

Podría lograr ese efecto con algo como "posición: absoluta; derecha: 0", pero me pregunto si hay una mejor manera. Parece que debería haber una propiedad justifySelf , que solo afecta a un elemento secundario y afecta su alineación en el eje principal, de la misma manera que alignSelf afecta la alineación de un elemento secundario en el eje secundario.

Sin embargo, tal justifySelf parece no existir. ¿Por qué es esto?

Es similar a esta pregunta pero no del todo: ¿Cómo puedes flotar: justo en React Native?

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

0

No conozco React Native, ¡pero sí sé flexbox!

Use el siguiente código como guía:

 <div style="display: flex;"> <div> I'll be on the left side </div> <div> I'll be hugging the guy on the left side </div> <div> I'll be hugging the guy hugging the guy on the left side </div> <div style="margin-left: auto;"> I'll be hugging the right side far away from those other guys </div> </div>

El margen establecido en el último elemento secundario empujará a todos los demás elementos secundarios hacia la izquierda tanto como lo permitan sus estilos, y se desplazará hacia la derecha tanto como lo permita cualquier otro estilo.

Puede probar esto agregando también margin-right: auto; al último hijo, y verá al último hijo centrado perfectamente en el espacio restante del div principal, después de que los primeros tres hijos ocupen su espacio asignado. Esto se debe a que los "automóviles de margen" de la competencia compartirán por igual el espacio restante, ya que no pueden cancelarse entre sí y no se anularán entre sí.

El cuadro flexible se diseñó para manejar el espaciado de márgenes como este, así que aprovéchelo, así como las otras opciones de espaciado únicas disponibles en la propiedad justify-content .

Artículo útil: https://hackernoon.com/flexbox-s-best-kept-secret-bd3d892826b6

over 4 years ago · Santiago Trujillo Denunciar

0

Creo que quieres lograr algo como esto: ingrese la descripción de la imagen aquí

Puede implementar esto anidando vistas que compartan la misma propiedad justifyContent .

 <View style={{ flex: 1, flexDirection: 'column', justifyContent: 'space-between', }}> <View> <View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} /> <View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} /> </View> <View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} /> </View>
over 4 years ago · Santiago Trujillo Denunciar

0

Una respuesta parcial: no hay justifySelf en React Native porque no hay justify-self para flexbox en CSS real. Hay una propiedad CSS justify-self , pero no hace nada en los diseños de flexbox. Puede ver en la especificación en https://drafts.csswg.org/css-align-3/#overview que se define justify-self para aplicarse a:

cajas a nivel de bloque, cajas absolutamente posicionadas y elementos de cuadrícula

que en particular no incluye "elementos flexibles".

Bien, pero ¿por qué es este el caso en CSS? MDN ofrece una explicación que puede o no encontrar satisfactoria:

No hay auto-justificación en Flexbox

En el eje principal Flexbox trata nuestro contenido como grupo. Se calcula la cantidad de espacio necesario para colocar los artículos y el espacio sobrante queda disponible para su distribución. La propiedad justify-content controla cómo se usa ese espacio sobrante. Establezca justify-content: flex-end y el espacio adicional se coloca antes de los elementos, justify-content: space-around y se coloca a ambos lados del elemento en esa dimensión, etc.

Esto significa que una propiedad justify-self no tiene sentido en Flexbox, ya que siempre estamos tratando de mover todo el grupo de elementos.

En el eje transversal, align-self tiene sentido, ya que potencialmente tenemos espacio adicional en el contenedor flexible en esa dimensión, en el que un solo elemento se puede mover al principio y al final.

Claramente hay algo de sentido en esto. Siempre es significativo y coherente poner alignSelf: 'center' en un elemento flexible para pedir que se centre en el eje transversal. Pero, ¿qué significaría, por ejemplo, poner justifySelf: 'center' en un elemento flexible, para pedir que se centre en el eje principal? ¿Cómo se supone que debe manejarse si los elementos flexibles anteriores ya han llenado más de la mitad del espacio a lo largo de ese eje?

Los márgenes proporcionan una buena solución para casos como el suyo. justifySelf , por otro lado, no puede existir razonablemente para flexbox, porque los valores de justifyContent especifican cómo distribuir elementos flexibles, y un poco de reflexión sobre lo que significaría aplicarlos a elementos especificados individualmente revela que hacerlo es básicamente incoherente. .

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