Hintergrund Durch das flexible Layout wird eine effektivere Ausrichtung und Platzzuweisung erreicht. Vor kurzem habe ich etwas über die Berechnungsregeln für die Größe von Flex-Child-Elementen gelernt, hauptsächlich über die Berechnungsregeln für 1. Grundlegende Konzepte 1.1 Hauptachse Der Startpunkt und die Richtung des Flex-Element-Layouts werden definiert und die untergeordneten Flex-Elemente werden nacheinander auf der Hauptachse platziert. Die Hauptachse hat vier Richtungen, die durch
Horizontale Richtung, von links nach rechts, Standard
Horizontale Richtung, von rechts nach links
Vertikale Richtung, von oben nach unten
Vertikale Richtung, von unten nach oben 1.2 Hauptachsengröße Es handelt sich um die Größe des Inhaltsrechtecks des Flex-Containers (ohne Polsterung, Rahmen und Randbereiche) in der Hauptachsenrichtung. 1.3 Querachse Die Querachse stellt die Richtung der Hammer-Hauptachse dar und dient vor allem der Ausrichtung von Flexelementen. 1.4 Querachsengröße Es handelt sich um die Größe des Inhaltsrechtecks des Flex-Containers (ohne Polsterung, Rahmen und Randbereiche) in Querachsenrichtung. 1,5 Flexbox-Modell Ein Element mit 1. Ein Flex-Container enthält nicht nur Flex-Elemente, sondern auch leeren Raum. 2. CSS beteiligt Flex-Richtung Flex-Wrap Flex-Flow
Abkürzung für Flex-Direction und Flex-Wrap.
Steuert die Ausrichtung des Flex-Container-Inhalts (Flex-Elemente und Leerraum) entlang der Hauptachse. Achten Sie auf die Unterscheidung zwischen Align-Items.
Steuert die Ausrichtung der Zeilen in einem mehrzeiligen Flex-Container.
Steuert die Ausrichtung des Flex-Container-Inhalts (Flex-Elemente und Leerraum) in Querachsenrichtung. Tipp: 1. Diese CSS-Eigenschaften hängen alle zusammen: Geben Sie zunächst die Hauptachsenrichtung des Flex-Containers an (Flex-Richtung). Wenn das Flex-Unterelement die Hauptachsengröße überschreitet, muss entschieden werden, ob ein Wrap (Flex-Wrap) erfolgen soll. Wird die Hauptachsengröße nicht überschritten, handelt es sich um eine Inline-Ausrichtung (justify-content). Bei mehreren Zeilen muss jede Zeile zusätzlich direkt ausgerichtet werden (align-content). 2. Es kann leicht passieren, dass man „Justify-Content“, „Align-Content“ und „Align-Items“ verwechselt. Denken Sie daran, dass sich „Inhalt“ auf die Flex-Elemente und den leeren Bereich bezieht und „Elemente“ sich auf die Flex-Elemente bezieht. Dies ist der Nutzen dieser drei Attribute. 1.6 Flex-Artikel 1. Syntax Die untergeordneten Elemente der Flexbox enthalten keine Out-of-Flow-untergeordneten Elemente (absolute, feste Elemente), jedoch Float-Elemente. Angrenzende Ränder von Flex-Unterelementen werden nicht zusammengeführt. Wenn ein Float-Element als untergeordnetes Flex-Element verwendet wird, ist die Float-Eigenschaft ungültig (da es am Flex-Layout und nicht am Flow-Layout teilnimmt). 2. Einbinden von CSS-Eigenschaften
Gibt die Größe des Flex-Containers an, die das Flex-Element in Hauptachsenrichtung einnimmt. Der Standardwert ist „auto“, d. h., die Größe des Flex-Elements wird als die Größe verwendet, die es einnimmt (die Hauptachse ist die Breite des Flex-Elements mit Zeilenwert und die Hauptachse ist die Höhe des Flex-Elements mit Spaltenwert). Ob freier Speicherplatz vorhanden ist, wird anhand dieses Attributs berechnet. Hinweis: Die von einem Flex-Element eingenommene Größe hängt mit der Flex-Basis zusammen und hat keinen direkten Bezug zur Breite und Höhe des Elements.
Gibt den elastischen Wachstumsfaktor jedes Flex-Elements an, d. h. den proportionalen Anteil des eingenommenen positiven Freiraums. Ein Wert von 0 (Standard) bedeutet, dass kein leerer Platz belegt ist
Gibt den elastischen Schrumpfungsfaktor jedes Flex-Elements an, d. h. den proportionalen Anteil des zugewiesenen negativen Freiraums. Allerdings kann das Element nicht unendlich auf 0 schrumpfen, noch kann es kleiner sein als die Mindestgröße des Elements (wie etwa Mindestbreite oder Mindesthöhe).
Flex-Grow Flex-Shrink Flex-Basis Abkürzung
Passen Sie die Ausrichtung auf der Querachse an. Diese Eigenschaft ist nur gültig, wenn die Querachse nicht vollständig belegt ist.
Geben Sie die Reihenfolge an 2. Berechnung von Freiraum und Flex-Basis Der Anteil der flexiblen untergeordneten Elemente auf der Hauptachse hängt von diesen drei CSS-Eigenschaften ab:
In: 2.1 Regeln 2.2 Berechnung des verbleibenden freien Speicherplatzes Freiraumberechnung Bevor der freie Speicherplatz des Flex-Containers berechnet wird, muss zunächst die von den Flex-Unterelementen belegte Größe gezählt werden, um den erwarteten selbstgenutzten Speicherplatz zu ermitteln. Beachten Sie, dass sich dies auf die Größe des Randbereichs der Flex-Unterelemente bezieht und die Ränder benachbarter Flex-Unterelemente nicht zusammengeführt werden. Berechnung der verbleibenden freien Fläche = Berechnung der freien Fläche - Voraussichtliche Fläche zur Eigennutzung Positiver Freiraum: Der verbleibende Freiraum mit positiven Werten nutzt die Kombination Flex-Basis + Flex-Grow. Negativer Freiraum Der verbleibende Freiraum mit negativen und positiven Werten nutzt die Kombination Flex-Basis + Flex-Shrink. 3. Erfahren Sie mehr über Flex-Grow 3.1 Regeln Wenn ein positiver freier Speicherplatz vorhanden ist, wird
Aber letztendlich gibt es nur einen Kuchen, und der Flex-Container versucht, die Anforderungen der untergeordneten Flex-Elemente zu erfüllen, indem er den Kuchen auf einfache Weise proportional aufteilt:
3.2 Demo1: Den Kuchen nach Proportionen aufteilen Funktion demo1() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>Eins</div> <div className="item" style={{flexBasis: 150, flexGrow: 2, }}>Zwei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 600px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; } `}</style> </> ) } Analyse: Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Wachstumsgröße jedes Flex-Child-Elements
3.3 Demo2: SUM(flex-grow) < 1 Funktion demo3() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexGrow: 0.2, marginRight: 10}}>Eins</div> <div className="item" style={{flexBasis: 150, flexGrow: 0.3, }}>Zwei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 600px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; } `}</style> </> ) } Analyse: Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Wachstumsgröße jedes Flex-Child-Elements
Beachten: Wenn SUM(flex-grow) kleiner als 1 ist, wird der verbleibende Speicherplatz nicht vollständig jedem untergeordneten Flex-Element zugewiesen. 3.3 Demo3 kollidiert mit der maximalen Breite Beachten Sie in diesem Beispiel:
Funktion demo4() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10, maxWidth: 150}}>Eins</div> <div className="item" style={{flexBasis: 150, flexGrow: 2 }}>Zwei</div> <div className="item" style={{flexBasis: 100, flexGrow: 3 }}>Drei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 800px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; Box-Größe: Rahmenbox; } `}</style> </> ) } Analyse: Verbleibenden freien Speicherplatz berechnen Hauptachsengröße des Flex-Containers = 800 px Gewünschte Größe von Element eins = 100px(Flex-Basis) + 10px(Rand rechts) = 110px Gewünschte Größe von Element zwei = 150px (Flex-Basis) = 150px Gewünschte Größe von Element drei = 150px (Flex-Basis) = 150px Verbleibender freier Platz = 800px – 110px – 150px – 150px = 390px, d. h. es gibt positiven verbleibenden Platz. Berechnen Sie die Wachstumsgröße jedes Flex-Child-Elements
Auf diese Weise beträgt die Größe von Element eins Um freien Speicherplatz zu schaffen, werden Element zwei und Element drei neu zugewiesen. Dies bedeutet, dass Sie zu Schritt 1 zurückkehren und die Berechnung neu durchführen müssen.
3.4 Zusammenfassung:
4. Erfahren Sie mehr über Flex-Shrink 4.1 Regeln Wenn negativer Freiraum vorhanden ist, wird
Der Flex-Container war zu Tränen gerührt, aber um die Gefühle jedes einzelnen Flex-Unterelements zu berücksichtigen, wurde eine „vernünftigere“ Zuordnungsregel übernommen:
Die Berechnungsregeln sind komplizierter als die oben genannten und es handelt sich nicht um eine einfache Aufteilung des negativen Freiraums. Das Ausmaß der Schrumpfung hängt nicht nur vom Flex-Schrumpf, sondern auch von der Flex-Basis ab. Dies dient lediglich dazu, es „vernünftiger“ zu machen, d. h. unter denselben Flex-Shrink-Bedingungen gilt: Je kleiner die Flex-Basis, desto langsamer schrumpft das Flex-Element (genau wie bei der Zahlung von Steuern: Je höher das Einkommen, desto mehr zahlen Sie). Hinweis: Wenn die Summe von Flex-Shrink kleiner als 1 ist, bedeutet dies, dass ein Teil des negativen Freiraums verteilt wird (d. h. einige Größen werden nicht verkleinert). 4.2 Demo1: „Die Kluft zwischen Arm und Reich verringern“ Funktion demo5() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>Eins</div> <div className="item" style={{flexBasis: 150, flexGrow: 2, flexShrink: 2 }}>Zwei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 300px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; } `}</style> </> ) } Analyse (zu lang ist ähnlich dem Flex-Grow-Prozess): Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Schrumpfgröße jedes Flex-Unterelements
4.2 Demo: SUM(flex-shrink) < 1 Funktion demo8() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexShrink: 0.2, marginRight: 10}}>Eins</div> <div className="item" style={{flexBasis: 150, flexShrink: 0.3 }}>Zwei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 300px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; } `}</style> </> ) } Das Flexelement erstreckt sich über den Flexcontainer hinaus. Analyse: Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Schrumpfgröße jedes Flex-Unterelements
4.4 Demo3: Boxgröße = Rahmenbox Hinweis: Element eins, zwei Funktion demo6() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexGrow: 1, marginRight: 10}}>Eins</div> <div className="item" style={{flexBasis: 150, flexGrow: 2, flexShrink: 2 }}>Zwei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 200px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; Box-Größe: Rahmenbox; } `}</style> </> ) } Analyse: Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Schrumpfgröße jedes Flex-Unterelements
4.5 Demo5 steht im Konflikt mit der Mindestbreite Beachten Sie in diesem Beispiel: Element eins hat Funktion demo7() { zurückkehren ( <> <div Klassenname="flex"> <div className="item" style={{flexBasis: 100, flexShrink: 2, marginRight: 10, minWidth: 60}}>Eins</div> <div className="item" style={{flexBasis: 150, flexShrink: 2 }}>Zwei</div> <div className="item" style={{flexBasis: 100, flexShrink: 1 }}>Drei</div> </div> <Stil jsx>{` .flex { Anzeige: Flex; Breite: 300px; Umriss: 1px gestrichelt rot; } .Artikel { Polsterung: 10px; Rand: 10px durchgezogen #666666; } `}</style> </> ) } Analyse: Verbleibenden freien Speicherplatz berechnen
Berechnen Sie die Schrumpfgröße jedes Flex-Unterelements
Um freien Speicherplatz zu schaffen, werden Element zwei und Element drei neu zugewiesen. Dies bedeutet, dass Sie zu Schritt 1 zurückkehren und die Berechnung neu durchführen müssen.
4.6 Zusammenfassung
siehe css-tricks: Eine vollständige Anleitung zu Flexbox Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. |
<<: Implementieren Sie ein einfaches Datenantwortsystem
>>: Webdesigner sollten Webseiten unter drei Aspekten optimieren
Eine Website verwendet viel HTML5 und CSS3 und ho...
Inhaltsverzeichnis 1. Geltungsbereich 1. Globaler...
Inhaltsverzeichnis Überblick Definition Instanzme...
Vor kurzem habe ich vor, eine Cloud-Festplatte au...
Dieser Artikel zeichnet die Installations- und Ko...
Wie wird die Zeilenhöhe vererbt?Schreiben Sie ein...
Der Befehl „Docker Exec“ kann Befehle in einem la...
Verwandte Wissenspunkte Übergeben von Werten von ...
Bei der Optimierung der Datenbankleistung wird im...
Da der Docker-Daemon an den Unix-Socket des Hosts...
Inhaltsverzeichnis 1. js-Speicher 2. Abtretung 3....
Inhaltsverzeichnis Was ist ein Index Der Untersch...
Bild herunterladen Docker-Pull MySQL:5.7 docker p...
Beim Laden von Netzwerkdaten wird zur Verbesserun...
Überblick Heute werden wir hauptsächlich erläuter...