Les principales différences entre justify-content
, justify-items
et justify-self
de Grille CSS:
- L'
justify-content
de la propriété permet de contrôler l'alignement de colonnes de la grille. Il est situé sur la grille récipient. Il ne s'applique pas aux ou de contrôle de l'alignement des éléments de la grille.
- L'
justify-items
de la propriété permet de contrôler l'alignement des éléments de la grille. Il est situé sur la grille récipient.
- L'
justify-self
des remplacements de propriété justify-items
sur les éléments individuels. Il est situé sur les éléments de la grille et hérite de la valeur de justify-items
, par défaut.
Exemple
Voici une 2x3 grille.
- 2 colonnes, chacune de 100px de large
- 3 rangées, chaque 50px de haut
Le conteneur:
- 500px de large
- 250px de hauteur
.container {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: 50px 50px 50px;
width: 500px;
height: 250px;
grid-template-areas: " one two"
" three four"
" five six ";
}
.box:nth-child(1) { grid-area: one; }
.box:nth-child(2) { grid-area: two; }
.box:nth-child(3) { grid-area: three; }
.box:nth-child(4) { grid-area: four; }
.box:nth-child(5) { grid-area: five; }
.box:nth-child(6) { grid-area: six; }
/* non-essential decorative styles */
body {
display: flex;
justify-content: center;
}
.container {
background-color: #ddd;
border: 1px solid #aaa;
}
.box {
background-color: lightgreen;
border: 1px solid gray;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2em;
}
<div class="container">
<div class="box"><span>1</span></div>
<div class="box"><span>2</span></div>
<div class="box"><span>3</span></div>
<div class="box"><span>4</span></div>
<div class="box"><span>5</span></div>
<div class="box"><span>6</span></div>
</div>
justify-content
L' justify-content
propriété aligne les colonnes à l'intérieur du conteneur.
.container {
justify-content: space-between;
}
.container {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: 50px 50px 50px;
width: 500px;
height: 250px;
grid-template-areas: " one two"
" three four"
" five six ";
}
.box:nth-child(1) { grid-area: one; }
.box:nth-child(2) { grid-area: two; }
.box:nth-child(3) { grid-area: three; }
.box:nth-child(4) { grid-area: four; }
.box:nth-child(5) { grid-area: five; }
.box:nth-child(6) { grid-area: six; }
/* non-essential decorative styles */
body {
display: flex;
justify-content: center;
}
.container {
background-color: #ddd;
border: 1px solid #aaa;
}
.box {
background-color: lightgreen;
border: 1px solid gray;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2em;
}
<div class="container">
<div class="box"><span>1</span></div>
<div class="box"><span>2</span></div>
<div class="box"><span>3</span></div>
<div class="box"><span>4</span></div>
<div class="box"><span>5</span></div>
<div class="box"><span>6</span></div>
</div>
Avec justify-content: space-between
les deux colonnes sont épinglés sur les bords. Les éléments de la grille en majuscule uniquement parce qu'ils existent à l'intérieur de ces colonnes. Ils sont par ailleurs inchangée.
Notez que cette propriété ne fonctionne que quand il y a de l'espace libre dans le conteneur. Si l'une des colonnes étaient de la taille d' fr
, alors tout l'espace libre soit consommé, et justify-content
serait sans effet.
justify-items
L' justify-items
propriété aligne les éléments de la grille à l'intérieur de leurs pistes (pas la totalité du conteneur)
.container {
justify-items: center;
}
.container {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: 50px 50px 50px;
width: 500px;
height: 250px;
grid-template-areas: " one two"
" three four"
" five six ";
}
.box:nth-child(1) { grid-area: one; }
.box:nth-child(2) { grid-area: two; }
.box:nth-child(3) { grid-area: three; }
.box:nth-child(4) { grid-area: four; }
.box:nth-child(5) { grid-area: five; }
.box:nth-child(6) { grid-area: six; }
/* non-essential decorative styles */
body {
display: flex;
justify-content: center;
}
.container {
background-color: #ddd;
border: 1px solid #aaa;
}
.box {
background-color: lightgreen;
border: 1px solid gray;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2em;
}
<div class="container">
<div class="box"><span>1</span></div>
<div class="box"><span>2</span></div>
<div class="box"><span>3</span></div>
<div class="box"><span>4</span></div>
<div class="box"><span>5</span></div>
<div class="box"><span>6</span></div>
</div>
Avec justify-items: center
les éléments de la grille sont centrés à l'intérieur de leurs colonnes.
justify-self
L' justify-self
des remplacements de propriété justify-items
sur les éléments individuels.
.container { justify-items: center;}
.box:nth-child(2) { justify-self: start; }
.box:nth-child(3) { justify-self: end; }
.box:nth-child(6) { justify-self: stretch; }
.container {
display: grid;
grid-template-columns: 100px 100px;
grid-template-rows: 50px 50px 50px;
width: 500px;
height: 250px;
grid-template-areas: " one two"
" three four"
" five six ";
}
.box:nth-child(1) { grid-area: one; }
.box:nth-child(2) { grid-area: two; }
.box:nth-child(3) { grid-area: three; }
.box:nth-child(4) { grid-area: four; }
.box:nth-child(5) { grid-area: five; }
.box:nth-child(6) { grid-area: six; }
/* non-essential decorative styles */
body {
display: flex;
justify-content: center;
}
.container {
background-color: #ddd;
border: 1px solid #aaa;
}
.box {
background-color: lightgreen;
border: 1px solid gray;
display: flex;
justify-content: center;
align-items: center;
font-size: 1.2em;
}
<div class="container">
<div class="box"><span>1</span></div>
<div class="box"><span>2</span></div>
<div class="box"><span>3</span></div>
<div class="box"><span>4</span></div>
<div class="box"><span>5</span></div>
<div class="box"><span>6</span></div>
</div>
align-content
, align-items
et align-self
Ces propriétés font de même que leur justify-*
homologues, mais dans la direction perpendiculaire.
Plus ici: Quelle est la différence entre alignez-les éléments de vs alignez-le contenu de la Grille de Mise en page?
Spec De Référence
10.3. Ligne-Alignement de l'axe: l' justify-self
et justify-items
propriétés
Éléments de la grille peut être aligné dans la ligne de dimension à l'aide de la
justify-self
bien sur la grille de l'élément ou de l' justify-items
de la propriété
sur la grille récipient.
10.4. La colonne de l'axe d'Alignement: l' align-self
et align-items
propriétés
Éléments de la grille peut également être aligné dans le bloc de dimension (perpendiculaire
pour le inline dimension) à l'aide de l' align-self
bien sur la
grille de point ou align-items
bien sur la grille de conteneur.
10.5. L'alignement de la Grille: l' justify-content
et align-content
propriétés
Si la grille de l' bords extérieurs ne correspondent pas à la grille du conteneur
le contenu des bords (par exemple, si aucune colonne n'est flex-taille), la grille
les pistes sont alignés à l'intérieur de la boîte de contenu selon la
justify-content
et align-content
propriétés sur la grille
le conteneur.
(emphase ajoutée)
Boîte CSS Alignement du Module
Vous avez écrit:
Est l' justify-items
propriété dans Flex-zone de la même que l' justify-items
propriété dans la Grille?
Bien que la flexion et de la Grille de spécifications de fournir leurs propres définitions pour le mot-clé propriétés d'alignement, comme justify-items
et align-content
, le W3C est dans le processus de l'élimination progressive des propriétés d'alignement pour chaque zone de modèles et la mise en œuvre de leur nouvelle Zone d'Alignement Module, qui vise à définir un ensemble de propriétés d'alignement pour une utilisation sur tous les modèles boîte.
À partir de la flexbox spec:
1.2. Module
interactions
La Boîte CSS Alignement Module étend et remplace les définitions de
les propriétés d'alignement (justify-content
, align-items
,
align-self
, align-content
) introduite ici.
Il y a des références similaires dans la Grille de spécifications.
3 votes
Flexbox n'a pas
justify-items
attribut. Puisquejustify-items
pour la grille est pour l'axe principal, peut-être que vous parlez dejustify-content
?0 votes
Duplicata possible de Dans CSS Flexbox, pourquoi n'y a-t-il pas de propriétés "justify-items" et "justify-self" ?
3 votes
@reiallenramos Si vous lisez le titre de la question, je m'interroge sur la grille CSS.
0 votes
Si vous lisez VOTRE question #1, vous demandez "Est-ce que la propriété justify-items dans Flex-box..."
2 votes
@reiallenramos Il faut lire la phrase en entier pour comprendre ce qu'elle dit. Même dans ce cas, vous devrez peut-être lire les phrases environnantes pour bien comprendre le contexte.