Justify-content - Propriété CSS
Résumé des caractéristiques de la propriété justify-content
normal
| stretch
| left
| center
| right
| start
| end
| flex-start
| flex-end
| space-around
| space-between
| space-evenly
normal
justify-content
passe d'une valeur à l'autre sans transition.Schéma de la syntaxe de justify-content
.
justify-content
dans le contexte d'un flex-box
Les liens du schéma donnent accès à plus de détails
justify-content
dans le contexte d'une grille
Les liens du schéma donnent accès à plus de détails
Description de la propriété justify-content
.
La propriété justify-content
définit l'alignement des éléments dans un conteneur flex-box ou un conteneur grille.
Utilisation de justify-content
sur un conteneur flex.
justify-content
gère l'alignement des éléments suivant l'axe principal, qui est le plus souvent l'axe horizontal.
Rappel : pour un flex-box, l'axe principal et l'axe secondaire sont définis par la propriété flex-direction
.
Utilisation de justify-content
sur un conteneur grille.
Utilisée sur un container grille, justify-content
définit le positionnement des colonnes dans le conteneur grille.
Bien entendu, cela suppose que si la largeur totale des colonnes est inférieure à la largeur du conteneur grille.
Il convient de distinguer le positionnement des colonnes dans le conteneur (propriété justify-content
dont on parle sur cette page) et le positionnement
des éléments dans leur colonne (propriété justify-items
).
Voici l'exemple d'une grille où les colonnes sont alignées sur le début du conteneur (justify-content:start
) et les éléments sur la fin de
leur colonne (justify-items:end
).
Valeurs pour justify-content
sur un conteneur flex-box.
- justify-content: flex-start; justify-content: flex-end;
Les éléments internes sont groupés au début ou à la fin du flex-box, compte tenu de la valeur de la propriété
flex-direction
.Valeurs flex-start
etflex-end
en fonction deflex-direction
flex-direction
flex-start
flex-end
row
A gauche A droite row-reverse
A droite A gauche column
En haut En bas column-reverse
En bas En haut Voici deux exemples du résultat de la propriété
justify-content
avec la valeurflex-start
.123456flex-direction:row;
justify-content:flex-start;123456flex-direction:row-reverse;
justify-content:flex-start;Remarque : les valeurs
start
etend
sont généralement acceptées sur un flex-box, mais ne prennent pas en compte la direction d'écriture définie parflex-direction
.
Il en est de même pour les valeursleft
etright
qui positionnent les éléments sur la gauche ou la droite du conteneur flex, sans considérer la direction attribuée à ce conteneur. - justify-content: center;
Les éléments internes d'un flex-box sont groupés au centre du conteneur suivant l'axe principal, sans ajout d'espaces entre eux, autres que les marges spécifiques à chacun des éléments.
123456justify-content:center;
- justify-content: space-between;
Le premier élément est calé au début du conteneur, le dernier élément est à la fin du conteneur; l'espace restant est réparti également entre les autres éléments.
- justify-content: space-around;
L'espace restant disponible dans le conteneur est réparti entre les éléments, en gardant un demi-espace avant le premier élément et un demi-espace après le dernier élément.
- justify-content: space-evenly;
L'espace restant disponible dans le conteneur est réparti de façon égale entre les éléments, avant le premier élément, et après le dernier élément.
Valeurs pour justify-content
sur un conteneur grille.
- justify-content: normal;
La valeur
normal
est traitée comme la valeurstart
(voir plus loin).123456justify-content:normal;
- justify-content: start; justify-content: end;
Les colonnes sont groupées au début ou à la fin du conteneur grille.
Rappelons que le positionnement des éléments dans leur colonne est géré parjustify-items
. Dans nos exemples, les éléments sont centrés dans leur colonne.123456justify-content:start;
Remarque : les valeurs
flex-start
etflex-end
sont généralement acceptées par les navigateurs, mais ces derniers les traitent commestart
etend
lorsqu'il s'agit dune grille. - justify-content: left; justify-content: right;
Appliquées à un conteneur grille, ces valeurs sont équivalentes respectivement à
start
et àend
.123456justify-content:left;
- justify-content: center;
Les colonnes sont groupées au centre du conteneur grille.
123456justify-content:center;
- justify-content: stretch;
La valeur
stretch
provoque un élargissement des colonnes jusqu'au remplissage complet du conteneur grille.Attention ! Cette valeur ne produit un effet que si au moins une des colonnes a une largeur fixée à
auto
: les colonnes dont la largeur est fixée à une dimension précise ne sont pas modifiées. D'autre part, si la largeur de au moins une des colonnes a été définie avec l'unitéfr
, il ne reste pas de place disponible dans le conteneur. La valeurstretch
appliquée àjustify-content
sera donc également sans effet.123456grid-template-columns:repeat(3, auto);
justify-content:stretch; - justify-content: space-between;
Les colonnes sont réparties sur la largeur du conteneur de la façon suivante : a première colonne est calée à gauche, la dernière est calée à droite, et l'espace restant est réparti de façon égale entre les colonnes intérieures.
Si
D
est l'espace restant disponible dans le conteneur etn
le nombre de colonnes, l'espacee
entre les colonnes est calculé par la formule :
Espace entre colonnese = D / (n-1)
- justify-content: space-around;
Les espaces entre les colonnes d'une grille, ainsi que les espaces avant la première colonne et après la dernière colonne sont ajustés pour emplir toute la place disponible, les espaces au début et à la fin étant deux fois moins larges que l'espace entre les colonnes.
Espace entre les colonnes
e = D / n
Espace au début et à la fine = D / 2n
AvecD
étant l'espace disponible etn
le nombre de colonnes. - justify-content: space-evenly;
Les colonnes sont réparties sur la largeur du conteneur de façon à ce que les espaces entre les colonnes, et les espaces avant la première colonne ou après la dernière soient tous égaux.
Si
D
est l'espace restant etn
le nombre de colonnes, les espaces sont calculés par la formule :
Espacee = D / (n+1)
- justify-content: safe ...; justify-content: unsafe ...;
Les modificateurs
safe
etunsafe
peuvent être ajoutés avant le mot clé définissant l'alignement lorsque ce denier eststart
,end
,center
,right
ouleft
. Le rôle desafe
est d'empêcher les débordements du mauvais côté.unsafe
(par défaut) : l'alignement demandé est respecté même s'il provoque un débordement difficile à gérer.
safe
: si l'alignement demandé provoque un débordement du mauvais côté, alors l'élément est aligné comme avecstart
.
Voici un exemple du "débordement du mauvais côté". La grille ci-dessous contient du code informatique. Ce genre de contenu ne peut pas accepter des retours à la ligne n'importe où. Les lignes débordent donc fréquemment de la place qui leur est impartie. Il est facile de prévoir une barre de défilement pour permettre la consultation du contenu masqué (voir la propriété
overflow
).
Malheureusement, lorsque le débordement se produit du côté début de bloc, ou début de ligne, la barre de défilement ne permet pas de le faire apparaître le contenu masqué.Note : dans l'exemple les colonnes sont alignées sur la fin du conteneur (
justify-content:end
).for(var i=0; i<50; i++)
if(valeur[i]>max) {max=valeur[i];}
}align-content:end;
Le modificateur
safe
autorise le navigateur à ne pas respecter scrupuleusement l'alignement demandé pour faire en sorte que le débordement se fasse du côté fin de bloc ou fin de ligne. Ce qui permet d'utiliser la barre de défilement.for(var i=0; i<50; i++)
if(valeur[i]>max) {max=valeur[i];}
}align-content:safe end;
Valeurs globales
(communes à toutes les propriétés)
justify-content: initial (normal
)
justify-content: inherit
justify-content: revert
justify-content: revertLayer
justify-content: unset
Consultez les pages suivantes pour plus de détails : initial
, inherit
, revert
, revert-layer
, unset
.
Exemple d'animation de justify-content
.
La démo ci-dessous est une animation de justify-content
, qui parcourt les principales valeurs de cette propriété.
Accéder à la propriété justify-content
par programme.
Modifier la valeur de justify-content
en Javascript.
En Javascript, voici comment modifier la valeur de justify-content
pour un élément el
.
On voit que Javascript propose une syntaxe avec la notation typique de CSS, en kebab-case
(un tiret pour séparer les mots),
et une autre syntaxe avec la notation en camel-case
(une majuscule pour séparer les mots).

let el = document.getElementById('id');
el.style['justify-content'] = 'end';
// ou
let el = document.getElementById('id');
el.style.justifyContent = 'end';
Lire en Javascript la valeur de justify-content
.
La propriété doit avoir été affectée directement à l'élément lui-même via l'attribut style
du HTML, et non pas en passant par un sélecteur CSS.

let el = document.getElementById('id');
let value = el.style['justify-content'];
// ou
let el = document.getElementById('id');
let value = el.style.justifyContent;
Lire la valeur calculée de justify-content
en Javascript.
La valeur calculée est prioritairement celle qui est affectée à l'élément, puis ce sera une valeur héritée. Enfin, en dernier recours, si aucune valeur n'est
affectée, cela sera la valeur initiale de la propriété, soit normal
.

let el = document.getElementById('id');
let value = window.getComputedStyle(el).getPropertyValue('justify-content');
Modifier la valeur de la propriété justify-content
avec JQuery.
Comme en Javascript, on retrouve deux syntaxes possibles.

$('#id').css('justify-content', 'end');
// ou
$('#id').css('justifyContent', 'end');
Lire la valeur calculée de la propriété justify-content
avec JQuery.
La lecture de la propriété peut se faire avec le code suivant.

let value = $('#id').css('justify-content');
Autres exemples.
D'autres exemples de code concernant la manipulation des propriétés CSS en Javascript et JQuery sont donnés sur la page Javascript et CSS.
Testez vous-même.
Les boutons ci-dessous appliquent la valeur saisie à la propriété justify-content
et affichent ensuite soit la valeur telle qu'elle a été appliquée,
soit la valeur calculée. Cette deuxième option permet de voir comment est mémorisée (sérialisée) la valeur de justify-content
, mais dans le cas de
justify-content
les valeurs affectée et calculée seront les mêmes.
Exemple interactif avec la propriété justify-content
.
flex-direction
: (conteneur flex seulement)
Compatibilité des navigateurs avec justify-content
.
La propriété justify-content
est bien reconnue par les navigateurs, aussi bien dans le contexte d'un conteneur grille que d'un conteneur flex.
Les valeurs ajoutées récemment dans la norme sont maintenant bien reconnues également : space-evenly
, start
et end
.
justify-content
dans le contexte d'un conteneur flex-box.justify-content
dans le contexte d'un container grille.space-evenly
pour la propriété justify-content
, dans le contexte d'un flex-box ou d'une grille.start
et end
pour la propriété justify-content
, dans le contexte d'un conteneur flex-box.justify-content
(flex-box)
justify-content
(grille)
space-evenly
start
et end
Navigateurs sur ordinateurs :
Navigateurs sur mobiles :
Navigateurs obsolètes ou marginaux :

Internet Explorer

QQ Browser

Safari sur IOS

Firefox pour Androïd

Opéra Mobile

Baidu Browser

KaiOS Browser

UC Browser pour Androïd

Opéra

Safari

Firefox

Chrome pour Androïd

Samsung Internet

Chrome

Edge

Androïd Brower

Opéra mini
Histoire de la propriété justify-content
.
-
Module CSS - Mise en page par flex-box - Niveau 1
Introduction de la propriétéjustify-content
dans le contexte d'un flex-box.23 Juillet 2009Document de travail.18 Septembre 2012Candidat à la recommandation. -
Module CSS - Mise en page par grille - Niveau 1
Introduction de la propriétéjustify-content
dans le contexte d'un conteneur grille.07 Avril 2011Document de travail.29 Septembre 2016Candidat à la recommandation. -
Module CSS - Mise en page par grille - Niveau 2
Pas de changement concernant la propriétéjustify-content
.06 Février 2018Document de travail.18 Août 2020Candidat à la recommandation. -
Module CSS - Alignement des blocs - Niveau 3
Le module de spécification "Box alignment" regroupe maintenant les propriétés de positionnement, dimensionnement et alignement des blocs.12 Juin 2012Document de travail.
Autres propriétés de positionnement et d'alignement.
Les propriétés d'alignement, de positionnement et de dimensionnement des blocs sont regroupées dans le module CSS Box Alignment Module, aussi bien pour les flex-box, que les grilles ou les conteneurs multi-colonnes.