Puede anular align-itemscon align-selfun elemento flexible. Estoy buscando una forma de anular justify-contentun elemento flexible.
Si tuviera un contenedor flexbox con justify-content:flex-end, pero desea que sea el primer elemento justify-content: flex-start, ¿cómo podría hacerse?
Esto fue mejor respondido por esta publicación: https://stackoverflow.com/a/33856609/269396

automárgenes. Ver cuadro # 26 aquí: stackoverflow.com/a/33856609/3597276Respuestas:
No parece existir
justify-self, pero puede lograr una configuración de resultados similar apropiadamarginparaauto¹. P.ej. paraflex-direction: row(predeterminado) debe configurarmargin-right: autopara alinear el niño a la izquierda.Behavior Este comportamiento está definido por la especificación de Flexbox .
fuente
justify-selfposible que no tenga nada que ver,flexboxsino que se usa,css gridspero no estoy seguro. Parece que no puedo hacer que funcione en Chrome con flexbox.AFAIK no hay ninguna propiedad para eso en las especificaciones, pero aquí hay un truco que he estado usando: establezca el elemento contenedor (el que tiene
display:flex) enjustify-content:space-aroundLuego agregue un elemento adicional entre el primer y el segundo elemento y configúrelo enflex-grow:10(o algunos otro valor que funcione con su configuración)Editar: si los elementos están estrechamente alineados, es una buena idea agregar también
flex-shrink: 10;al elemento adicional, por lo que el diseño responderá correctamente en dispositivos más pequeños.fuente
min-width: 0Si en realidad no está restringido a mantener todos estos elementos como nodos hermanos, puede envolver los que van juntos en otro cuadro flexible predeterminado y hacer que el contenedor de ambos use espacio intermedio.
O si estaba haciendo lo mismo con flex-start y flex-end invertido, simplemente cambie el orden del contenedor de flex predeterminado y el hijo solitario.
fuente
Parece que
justify-selfllegará pronto a los navegadores . Ya hay un artículo sobre él en MDN . En el momento de escribir este artículo, el soporte del navegador es deficiente.En cuanto a la solución de margen: tengo una cuadrícula Flexbox con huecos. No hay
flex-gappropiedad (¿todavía?) Con Flexbox. Entonces, para las canaletas, estoy usando rellenos y márgenes, por lo que necesitomargin: autosobrescribir los otros márgenes ...fuente
In flexbox layouts, this property is ignoredjustify-selfhace el trabajo en undisplay: gridcontenedor. Es reciente como Flexbox, por lo que permite un posicionamiento rico comoalign-items,align-selfasí como algunas características adicionales como la que necesitamos aquíjustify-self. Lo que recomiendo es usar flexbox siempre que sea suficiente, pero si le falta algo, la cuadrícula probablemente tenga lo que está buscando. (p. ej., alinear fácilmente un elemento secundario a center-x y center-y, y otro a right-x center-y - flexbox tienemargin-left: autopara easy left + right, pero no center + right) Ejemplo: stackoverflow.com/a/57128453 / 2441655Para aquellas situaciones en las que
flex-endse conoce el ancho de los elementos que desea , puede establecer su flexión en "0 0 ## px" y establecer el elemento que deseaflex-startconflex:1Esto hará que el pseudo
flex-startítem llene el contenedor, simplemente formateetext-align:lefto lo que sea.fuente
Resolví un caso similar estableciendo el estilo del elemento interno en
margin: 0 auto.Situación: mi menú generalmente contiene tres botones, en cuyo caso deben estar
justify-content: space-between. Pero cuando solo hay un botón, ahora estará alineado al centro en lugar de a la izquierda.fuente