justify-content
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
* Some parts of this feature may have varying levels of support.
Die CSS justify-content
Eigenschaft definiert, wie der Browser den Raum zwischen und um die Inhaltselemente entlang der Hauptachse eines Flex-Containers und der Inline-Achse von Grid- und Multicol-Containern verteilt.
Das interaktive Beispiel unten demonstriert einige justify-content
Werte, indem es das Grid-Layout verwendet.
Probieren Sie es aus
justify-content: start;
justify-content: center;
justify-content: space-between;
justify-content: space-around;
justify-content: space-evenly;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
width: 220px;
display: grid;
grid-template-columns: 60px 60px;
grid-auto-rows: 40px;
row-gap: 10px;
}
#example-element > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
Syntax
/* Positional alignment */
justify-content: center;
justify-content: start;
justify-content: end;
justify-content: flex-start;
justify-content: flex-end;
justify-content: left;
justify-content: right;
/* Normal alignment */
justify-content: normal;
/* Distributed alignment */
justify-content: space-between;
justify-content: space-around;
justify-content: space-evenly;
justify-content: stretch;
/* Overflow alignment (for positional alignment only)*/
justify-content: safe center;
justify-content: unsafe center;
/* Global values */
justify-content: inherit;
justify-content: initial;
justify-content: revert;
justify-content: revert-layer;
justify-content: unset;
Werte
start
-
Die Elemente sind zusammengepackt zur Startkante des Ausrichtungscontainers auf der Hauptachse.
end
-
Die Elemente sind zusammengepackt zur Endkante des Ausrichtungscontainers auf der Hauptachse.
flex-start
-
Die Elemente sind zusammengepackt zur Startkante des Ausrichtungscontainers auf der Haupt-Startseite des Flex-Containers. Dies gilt nur für Flex-Layout-Elemente. Bei Elementen, die keine Kinder eines Flex-Containers sind, wird dieser Wert wie
start
behandelt. flex-end
-
Die Elemente sind zusammengepackt an der Endkante des Ausrichtungscontainers auf der Haupt-Endseite des Flex-Containers. Dies gilt nur für Flex-Layout-Elemente. Bei Elementen, die keine Kinder eines Flex-Containers sind, wird dieser Wert wie
end
behandelt. center
-
Die Elemente sind zusammengepackt zur Mitte des Ausrichtungscontainers entlang der Hauptachse.
left
-
Die Elemente sind zusammengepackt zur linken Kante des Ausrichtungscontainers. Wenn die horizontale Achse der Eigenschaft nicht mit der Inline-Achse parallel ist, wie wenn
flex-direction: column;
gesetzt ist, verhält sich dieser Wert wiestart
. right
-
Die Elemente sind zusammengepackt zur rechten Kante des Ausrichtungscontainers auf der entsprechenden Achse. Wenn die Achse der Eigenschaft nicht parallel zur Inline-Achse ist (in einem Grid-Container) oder zur Hauptachse (in einem Flexbox-Container), verhält sich dieser Wert wie
start
. normal
-
Verhält sich wie
stretch
, außer im Fall von Mehrspalten-Containern mit einer nicht-auto
column-width
, in welchem Fall die Spalten ihre angegebenecolumn-width
annehmen, anstatt sich zu dehnen, um den Container zu füllen. Dastretch
sich in Flex-Containern wiestart
verhält, verhält sich auchnormal
wiestart
. space-between
-
Die Elemente sind gleichmäßig innerhalb des Ausrichtungscontainers entlang der Hauptachse verteilt. Der Abstand zwischen jedem Paar benachbarter Elemente ist gleich. Das erste Element ist bündig mit der Haupt-Start-Kante, und das letzte Element ist bündig mit der Haupt-End-Kante.
space-around
-
Die Elemente sind gleichmäßig innerhalb des Ausrichtungscontainers entlang der Hauptachse verteilt. Der Abstand zwischen jedem Paar benachbarter Elemente ist gleich. Der Leerraum vor dem ersten und nach dem letzten Element entspricht der Hälfte des Abstands zwischen jedem Paar benachbarter Elemente. Wenn es nur ein Element gibt, wird es zentriert.
space-evenly
-
Die Elemente sind gleichmäßig innerhalb des Ausrichtungscontainers entlang der Hauptachse verteilt. Der Abstand zwischen jedem Paar benachbarter Elemente, der Haupt-Start-Kante und dem ersten Element, sowie der Haupt-End-Kante und dem letzten Element ist genau gleich.
stretch
-
Wenn die kombinierte Größe der Elemente entlang der Hauptachse kleiner ist als die Größe des Ausrichtungscontainers, werden alle
auto
-großen Elemente gleichmäßig (nicht proportional) vergrößert, während dabei die durchmax-height
/max-width
(oder entsprechende Funktionalität) auferlegten Beschränkungen respektiert werden, sodass die kombinierte Größe genau den Ausrichtungscontainer entlang der Hauptachse ausfüllt. safe
-
Wenn das Element den Ausrichtungscontainer überläuft, wird das Element so ausgerichtet, als ob der Ausrichtungsmodus
start
wäre. Die gewünschte Ausrichtung wird nicht implementiert. unsafe
-
Selbst wenn das Element den Ausrichtungscontainer überläuft, wird die gewünschte Ausrichtung implementiert. Anders als
safe
, welches die gewünschte Ausrichtung zugunsten der Vermeidung von Überläufen ignoriert.
Beschreibung
Definiert im CSS-Box-Alignment Modul, gilt justify-content
für Multicol-Container, Flex-Container und Grid-Container. Die Eigenschaft gilt nicht für und hat keine Auswirkung auf Block-Container.
Diese Eigenschaft teilt viele Schlüsselwortwerte mit der align-content
Eigenschaft, aber nicht alle! justify-content
ist nicht in die Basislinienausrichtung involviert und nimmt daher keine Basislinienwerte an.
In Flex-Layouts definiert die Eigenschaft, wie positiver Freiraum zwischen oder um Flex-Elemente entlang der Hauptachse verteilt wird. Diese Eigenschaft beeinflusst den Raum zwischen den Elementen in einer Zeile, nicht den Raum zwischen Zeilen. Die Ausrichtung erfolgt nach der Anwendung der Längen und Auto-Ränder, was bedeutet, dass die Eigenschaft keine Wirkung hat, wenn eines oder mehrere Flex-Elemente in einer Zeile einen flex-grow
Faktor größer als 0
haben, da es dann keinen Raum zur Verteilung entlang dieser Zeile gibt. Außerdem, da das Strecken entlang der Hauptachse durch flex
gesteuert wird, verhält sich der stretch
Wert wie flex-start
.
Mit Grid-Layout verteilt diese Eigenschaft verfügbaren Raum zwischen oder um die Gitterspalten, nicht die Gitterelemente. Wenn der Grid-Container größer als das Raster selbst ist, kann die justify-content
Eigenschaft verwendet werden, um das Raster entlang der Inline-Achse zu rechtfertigen, wobei die Gitterspalten ausgerichtet werden.
Grid auto
Spurengrößen (und nur auto
Spurengrößen) können durch die align-content
und justify-content
Eigenschaften gedehnt werden. Daher wird eine auto
-große Spur standardmäßig jeden verbleibenden Raum im Grid-Container einnehmen. Da die Inline-Größe des Rasters kleiner sein muss als die Inline-Größe des Grid-Containers, damit es Raum zum Verteilen gibt, hat die Eigenschaft in diesem Fall keine Wirkung.
Formale Definition
Anfangswert | normal |
---|---|
Anwendbar auf | flexible Container |
Vererbt | Nein |
Berechneter Wert | wie angegeben |
Animationstyp | diskret |
Formale Syntax
Beispiele
Einfache Grid-Beispiel
In diesem Beispiel haben wir ein Gitter, das schmaler ist als sein Gitter-Container, und wir verwenden justify-content
, um den verfügbaren Raum gleichmäßig um und zwischen den Gitterspalten zu verteilen.
HTML
Der <section>
Container, unser zukünftiger Gitter-Container, hat 16 verschachtelte <div>
s, die zu Gitter-Elementen werden.
<section class="container">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
<div>E</div>
<div>F</div>
<div>G</div>
<div>H</div>
<div>I</div>
<div>J</div>
<div>K</div>
<div>L</div>
<div>M</div>
<div>N</div>
<div>O</div>
<div>P</div>
</section>
CSS
Wir setzen die Container-Breite auf 500px
und spezifizieren drei Spalten, jede 80px
breit, was bedeutet, dass 260px
verfügbarer Raum zu verteilen ist. Wir setzen dann justify-content: space-evenly
, was bedeutet, dass 65px
Raum vor, zwischen und nach jeder Spalte sein werden.
Wir setzen unterschiedliche Breiten (und Hintergrundfarben), um zu demonstrieren, wie die Rechtfertigung auf die Spalten angewendet wird.
.container {
display: grid;
grid: auto-flow / repeat(3, 80px);
width: 500px;
justify-content: space-evenly;
}
div {
background-color: pink;
width: 80px;
}
div:nth-of-type(n + 9) {
width: 35px;
background-color: lightgreen;
}
div:nth-last-of-type(3) {
width: 250px;
background-color: lightblue;
}
Ergebnis
Beachten Sie, dass justify-contents
die Spalten ausrichtet und keine Auswirkung auf die Elemente oder die Ausrichtung in Gitterbereichen hat. Gitterelemente, selbst solche, die ihre Gitterzelle überlaufen, beeinflussen nicht die Spaltenrechtfertigung.
Der Safe-Begriff
Dieses Beispiel demonstriert den safe
Begriff. Wir spezifizieren vier zentrierte Flex-Elemente, die sich nicht umbrechen lassen und als Ergebnis ihren einzigen Flex-Line-Container überlaufen. Durch Hinzufügen von safe
zu center
in der justify-content
Eigenschaft verhält sich überlaufender Inhalt, als wäre der Ausrichtungsmodus start
.
Der Container ist auf center
gesetzt, wobei jeder Container außer dem ersten das safe
Schlüsselwort hinzugefügt hat:
.container {
align-items: baseline;
display: flex;
width: 350px;
height: 2em;
}
.safe {
justify-content: center;
}
.safe-center {
justify-content: safe center;
}
div {
flex: 0 0 100px;
}
Ergebnis
Da ein Element den Ausrichtungscontainer überläuft, verhält sich der Ausrichtungsmodus mit eingeschlossenem safe
wie start
und die center
-Ausrichtung wird nicht implementiert. Der safe
-Begriff hat keine Wirkung, wenn die Elemente den Container nicht überlaufen.
Visualisierung der Flex-Element-Verteilung
Dieses Beispiel beinhaltet ein mehrzeiliges Flex-Layout. Das zweite Flex-Element hat einen positiven Wachstumfaktor und nutzt den gesamten verfügbaren Freiraum in der ersten Flex-Zeile.
CSS
#container {
display: flex;
flex-flow: row wrap;
justify-content: space-between; /* Can be changed in the live sample */
width: 510px;
}
div {
line-height: 2em;
flex: 0 0 120px;
background-color: pink;
}
div:nth-of-type(2) {
flex-grow: 1;
background-color: yellow;
}
div:nth-of-type(n + 9) {
flex: 0 0 35px;
background-color: lightgreen;
}
div:last-of-type {
flex: 0 0 300px;
background-color: lightblue;
}
Ergebnis
Wählen Sie verschiedene Schlüsselwörter aus dem Dropdown-Menü, um die verschiedenen justify-content
Schlüsselwortwerte zu visualisieren. Da ein Element auf der ersten Zeile wachsen kann, gibt es keinen verfügbaren Raum auf dieser Zeile für die justify-content
Eigenschaft zur Verteilung. Mit dem space-between
Wert ist das erste Element jeder Zeile bündig mit der Haupt-Start-Kante und das letzte Element bündig mit der Haupt-End-Kante. Daher wird, wenn eine Zeile nur ein Element hat, es mit der Haupt-Start-Kante ausgerichtet (wie in der letzten Zeile zu sehen ist). Dies ist nicht der Fall für andere space-*
Werte, wie space-evenly
und space-around
, die einzeilige Flex-Lines zentrieren.
Spezifikationen
Specification |
---|
CSS Box Alignment Module Level 3 # align-justify-content |
CSS Flexible Box Layout Module Level 1 # justify-content-property |