Puede anular align-items
con align-self
un elemento flexible. Estoy buscando una forma de anular justify-content
un 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
auto
márgenes. Ver cuadro # 26 aquí: stackoverflow.com/a/33856609/3597276Respuestas:
No parece existir
justify-self
, pero puede lograr una configuración de resultados similar apropiadamargin
paraauto
¹. P.ej. paraflex-direction: row
(predeterminado) debe configurarmargin-right: auto
para alinear el niño a la izquierda.Behavior Este comportamiento está definido por la especificación de Flexbox .
fuente
justify-self
posible que no tenga nada que ver,flexbox
sino que se usa,css grids
pero 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-around
Luego 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: 0
Si 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-self
llegará 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-gap
propiedad (¿todavía?) Con Flexbox. Entonces, para las canaletas, estoy usando rellenos y márgenes, por lo que necesitomargin: auto
sobrescribir los otros márgenes ...fuente
In flexbox layouts, this property is ignored
justify-self
hace el trabajo en undisplay: grid
contenedor. Es reciente como Flexbox, por lo que permite un posicionamiento rico comoalign-items
,align-self
así 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: auto
para easy left + right, pero no center + right) Ejemplo: stackoverflow.com/a/57128453 / 2441655Para aquellas situaciones en las que
flex-end
se conoce el ancho de los elementos que desea , puede establecer su flexión en "0 0 ## px" y establecer el elemento que deseaflex-start
conflex:1
Esto hará que el pseudo
flex-start
ítem llene el contenedor, simplemente formateetext-align:left
o 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