Sie können align-items
mit align-self
für ein flexibles Element überschreiben . Ich suche nach einer Möglichkeit, justify-content
einen Flex-Artikel zu überschreiben .
Wenn Sie einen Flexbox-Container mit hatten justify-content:flex-end
, aber den ersten Artikel haben möchten justify-content: flex-start
, wie könnte das gemacht werden?
Dies wurde am besten durch diesen Beitrag beantwortet: https://stackoverflow.com/a/33856609/269396
auto
Ränder. Siehe Feld Nr. 26 hier: stackoverflow.com/a/33856609/3597276Antworten:
Es scheint keine zu geben
justify-self
, aber Sie können eine ähnliche Ergebniseinstellung erzielen, diemargin
fürauto
¹ geeignet ist . Z.B. Fürflex-direction: row
(Standard) sollten Sie festlegenmargin-right: auto
, dass das untergeordnete Element links ausgerichtet wird.¹ Dieses Verhalten wird durch die Flexbox-Spezifikation definiert .
quelle
justify-self
vielleicht nichts damit zu tunflexbox
, sondern wird verwendet,css grids
aber ich bin mir nicht sicher. Ich kann nicht scheinen, dass es in Chrome mit Flexbox funktioniert.AFAIK gibt es keine Eigenschaft dafür in den Spezifikationen, aber hier ist ein Trick, den ich verwendet habe: Setzen Sie das Containerelement (das mit
display:flex
) aufjustify-content:space-around
Dann fügen Sie ein zusätzliches Element zwischen dem ersten und dem zweiten Element hinzu und setzen Sie es aufflex-grow:10
(oder einige) anderer Wert, der mit Ihrem Setup funktioniert)Bearbeiten: Wenn die Elemente eng ausgerichtet sind, empfiehlt es sich, auch
flex-shrink: 10;
das zusätzliche Element hinzuzufügen , damit das Layout auf kleineren Geräten ordnungsgemäß reagiert.quelle
min-width: 0
Wenn Sie nicht darauf beschränkt sind, alle diese Elemente als Geschwisterknoten beizubehalten, können Sie diejenigen, die zusammen gehören, in eine andere Standard-Flexbox einbinden und den Container beider Elemente zwischen Leerzeichen verwenden lassen.
Oder wenn Sie dasselbe mit umgekehrtem Flex-Start und Flex-End gemacht haben, tauschen Sie einfach die Reihenfolge des Standard-Flex-Containers und des einsamen Kindes aus.
quelle
Es scheint
justify-self
, als käme es bald in die Browser . Es gibt bereits einen Artikel über MDN . Zum Zeitpunkt dieses Schreibens ist die Browserunterstützung schlecht.Zur Margin-Lösung: Ich habe ein Flexbox-Raster mit Lücken. Es gibt
flex-gap
(noch?) Keine Eigenschaft mit Flexbox. Für die Dachrinnen verwende ich Polster und Ränder, dahermargin: auto
müssen die anderen Ränder überschrieben werden ...quelle
In flexbox layouts, this property is ignored
justify-self
funktioniert aber in einemdisplay: grid
Container. Es ist kürzlich wie Flexbox ermöglicht so reiche Positionierung wiealign-items
,align-self
sowie einige zusätzliche Funktionen wie die, die wir brauchen hierjustify-self
. Was ich empfehle, ist die Verwendung von Flexbox, wo immer dies ausreicht. Wenn jedoch etwas fehlt, hat Grid höchstwahrscheinlich das, wonach Sie suchen. (z. B. einfaches Ausrichten eines untergeordneten Elements an Center-X und Center-Y und eines anderen an Rechts-X Center-Y - Flexbox hatmargin-left: auto
für einfaches Links + Rechts, aber nicht Mitte + Rechts) Beispiel: stackoverflow.com/a/57128453 / 2441655Für Situationen , in denen Breite der Elemente , die Sie tun , um
flex-end
bekannt ist, können Sie ihre flex auf „0 0 ## px“ gesetzt und stellen Sie das Element , das Sie wollenflex-start
mitflex:1
Dies führt dazu, dass das Pseudoelement
flex-start
den Container füllt. Formatieren Sie es einfach auftext-align:left
oder was auch immer.quelle
Ich habe einen ähnlichen Fall gelöst, indem ich den Stil des inneren Elements auf gesetzt habe
margin: 0 auto
.Situation: Mein Menü enthält normalerweise drei Schaltflächen. In diesem Fall müssen sie vorhanden sein
justify-content: space-between
. Wenn es jedoch nur eine Schaltfläche gibt, wird diese jetzt in der Mitte anstatt links ausgerichtet.quelle