justify-self
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis octobre 2017.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
La propriété CSS justify-self définit la façon dont une boîte est alignée sur l'axe en ligne du conteneur.
Exemple interactif
justify-self: stretch;
justify-self: center;
justify-self: start;
justify-self: end;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">Un</div>
<div>Deux</div>
<div>Trois</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
display: grid;
width: 220px;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
L'effet de cette propriété dépend du mode de disposition utilisé :
- Pour les dispositions de bloc, elle aligne un élément à l'intérieur de son bloc englobant sur l'axe en ligne.
- Pour les éléments positionnés de façon absolue, elle aligne un élément à l'intérieur de son bloc englobant sur l'axe en ligne, en tenant compte des valeurs de décalage haut, gauche, bas et droite.
- Pour les dispositions des cellules de tableau, cette propriété est ignorée. Voir l'alignement dans les dispositions de bloc, positionnées absolument et les tableaux.
- Pour les dispositions flexibles, cette propriété est ignorée. Voir l'alignement en flexbox.
- Pour les grilles, elle aligne un élément à l'intérieur de sa zone de grille sur l'axe en ligne. Voir l'alignement en disposition grille.
Syntaxe
/* Mots-clés de base */
justify-self: auto;
justify-self: normal;
justify-self: stretch;
/* Alignement par rapport à l'axe */
justify-self: center; /* L'élément est aligné au centre */
justify-self: start; /* L'élément est aligné au début */
justify-self: end; /* L'élément est aligné à la fin */
justify-self: flex-start; /* L'élément est aligné au début de l'axe */
justify-self: flex-end; /* L'élément est aligné à la fin de l'axe */
justify-self: self-start;
justify-self: self-end;
justify-self: left; /* L'élément est aligné à gauche */
justify-self: right; /* L'élément est aligné à droite */
justify-self: anchor-center;
/* Alignement par rapport à la ligne de base */
justify-self: baseline;
justify-self: first baseline;
justify-self: last baseline;
/* Gestion du dépassement */
justify-self: safe center;
justify-self: unsafe center;
/* Valeurs globales */
justify-self: inherit;
justify-self: initial;
justify-self: revert;
justify-self: revert-layer;
justify-self: unset;
Cette propriété peut être définie selon trois formes différentes :
- Grâce à un mot-clé :
normal,autooustretch. - Relativement à la ligne de base : dans ce cas, on a le mot-clé
baselineéventuellement suivi defirstou delast. - Grâce à un positionnement :
- Un mot-clé parmi :
center,start,end,flex-start,flex-end,self-start,self-end,leftouright. - Puis éventuellement
safeouunsafe.
- Un mot-clé parmi :
Valeurs
auto-
La valeur utilisée est celle de la propriété
justify-itemsdéfinie pour la boîte parente. Si la boîte n'a pas de parent ou est positionnée de façon absolue,autosera synonyme denormal. normal-
Ce mot-clé aura un sens différent selon le mode de disposition utilisé :
- Pour une disposition en bloc,
normalest synonyme destart. - Pour les dispositions avec un positionnment absolu, ce mot-clé se comporte comme
startpour les boîtes des éléments remplacés ou commestretchpour les autres boîtes positionnées de façon absolue. - Pour les dispositions des cellules de tableaux, ce mot-clé n'a pas de signification car cette propriété est ignorée.
- Pour les dispositions qui utilisent les boîtes flexibles, ce mot-clé n'a pas de signification car cette propriété est ignorée.
- Pour les dispositions qui utilisent une grille, ce mot-clé aura un comportement proche de
stretch, sauf pour les boîtes qui ont des dimensions intrinsèques, dans ce cas, il est synonyme destart.
- Pour une disposition en bloc,
start-
L'élément est aligné vers le début du conteneur pour l'axe en ligne.
end-
L'élément est aligné vers la fin du conteneur pour l'axe en ligne.
flex-start-
Pour les éléments qui ne sont pas enfants d'un conteneur flexible, cette valeur est traitée comme
start. flex-end-
Pour les éléments qui ne sont pas enfants d'un conteneur flexible, cette valeur est traitée comme
end. self-start-
L'élément est aligné sur le bord du conteneur au début de l'axe en ligne.
self-end-
L'élément est aligné sur le bord du conteneur à la fin de l'axe en ligne.
center-
L'élément est aligné au centre du conteneur dans le sens de l'axe en ligne.
left-
L'élément est aligné vers la gauche du conteneur dans le sens de l'axe en ligne.
right-
L'élément est aligné vers la droite du conteneur dans le sens de l'axe en ligne.
baseline,first baseline,last baseline-
Ces valeurs permettent de définir l'alignement par rapport à la ligne de base pour l'élément du conteneur avec la ligne de base la plus haute ou la plus basse. Si
first baselinen'est pas prise en charge, la valeur correspondra àstart, silast baselinen'est pas prise en charge, la valeur correspondra àend. stretch-
Si la somme des tailles des éléments est inférieure à la taille du conteneur pour l'axe en ligne, les éléments dimensionnés automatiquement seront élargis de la même longueur tout en respectant les contraintes imposées par
max-height/max-width(ou par les fonctionnalités équivalentes), afin que l'ensemble des éléments remplisse exactement le conteneur. anchor-center-
Dans le cas des éléments positionnés avec une ancre, aligne l'élément au centre de l'élément d'ancre associé dans la direction en ligne. Voir Centrer sur l'ancre avec
anchor-center. safe-
Si la taille de l'élément dépasse du conteneur pour la valeur d'alignement indiquée, l'élément est alors aligné comme si la valeur
startavait été utilisée. unsafe-
Quelle que soit la taille de l'élément par rapport au conteneur (il peut dépasser), la valeur fournie pour indiquer l'alignement est respectée.
Définition formelle
| Valeur initiale | auto |
|---|---|
| Applicabilité | block-level boxes, absolutely-positioned boxes, and grid items |
| Héritée | non |
| Valeur calculée | comme spécifié |
| Type d'animation | discrète |
Syntaxe formelle
justify-self =
auto |
<overflow-position>? [ normal | <self-position> | left | right ] |
stretch |
<baseline-position> |
anchor-center
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
<baseline-position> =
[ first | last ]? &&
baseline
Exemples
>Démonstration simple
Dans l'exemple suivant, nous avons une disposition en grille 2 x 2. Initialement, le conteneur de grille reçoit une valeur justify-items de stretch — la valeur par défaut — ce qui fait que les éléments de la grille s'étendent sur toute la largeur de leurs cellules.
Les deuxième, troisième et quatrième éléments de la grille reçoivent ensuite différentes valeurs de justify-self, pour montrer comment celles-ci remplacent la valeur de justify-items. Ces valeurs font que les éléments de la grille n'occupent que la largeur de leur contenu et s'alignent à différents endroits dans leurs cellules.
HTML
<article class="container">
<span>Premier enfant</span>
<span>Deuxième enfant</span>
<span>Troisième enfant</span>
<span>Quatrième enfant</span>
</article>
CSS
html {
font-family: "Helvetica", "Arial", sans-serif;
letter-spacing: 1px;
}
article {
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 40px;
grid-gap: 10px;
margin: 20px;
width: 300px;
justify-items: stretch;
}
span:nth-child(2) {
justify-self: start;
}
span:nth-child(3) {
justify-self: center;
}
span:nth-child(4) {
justify-self: end;
}
article span {
background-color: black;
color: white;
margin: 1px;
text-align: center;
}
article,
span {
padding: 10px;
border-radius: 7px;
}
Résultat
Spécifications
| Specification |
|---|
| CSS Box Alignment Module Level 3> # justify-self-property> |
Compatibilité des navigateurs
Voir aussi
- L'alignement des boîtes avec les grilles CSS
- Le module d'alignement de boîte CSS
- La propriété
justify-items - La propriété
align-self - La propriété
place-self