inline-size
Définit la taille d’un élément le long de la ligne de texte. En écriture horizontale, c’est la largeur, et sa paire block-size définit la hauteur.
- Valeur initiale
auto- Héritée
- Non
- Animable
- oui, en tant que longueur ou pourcentage
- S’applique à
- tous les éléments sauf les éléments en ligne non remplacés (par exemple span), les lignes de tableau et les groupes de lignes
- JavaScript
element.style.inlineSize = "320px"
Exemple
#.card {
inline-size: min(100%, 280px);
padding: 12px;
border-radius: 14px;
background: #18181b;
}
.card img {
display: block;
inline-size: 100%;
block-size: 120px;
object-fit: cover;
border-radius: 10px;
}<article class="card">
<img src="/collections/covers/kurs-html-css-od-podstaw.webp" alt="" width="1536" height="1024">
<strong style="display: block; margin-top: 8px;">Cours HTML et CSS</strong>
<small style="color: #a1a1aa;">11 modules · 738 tâches</small>
</article>Définition et utilisation
#La propriété inline-size est l’équivalent logique de width. Elle définit la taille d’un élément sur l’axe en ligne, c’est-à-dire dans le sens où le texte s’écoule sur une ligne. Dans un texte horizontal classique, c’est simplement la largeur, et les deux propriétés produisent le même résultat.
Sa paire, block-size, définit la taille sur l’axe de bloc, le long duquel s’empilent les paragraphes successifs. En écriture horizontale, c’est la hauteur. Dès qu’un élément reçoit writing-mode: vertical-rl, les rôles s’inversent : inline-size contrôle la hauteur, et block-size la largeur.
Les deux ont des versions avec contraintes : min-inline-size, max-inline-size, min-block-size et max-block-size. Elles fonctionnent comme min-width, max-width et leurs équivalents verticaux. Toutes acceptent les mêmes valeurs que width : auto, des longueurs, des pourcentages, ainsi que min-content, max-content et fit-content.
Tout comme width, inline-size n’a aucun effet sur les éléments en ligne, comme <span>. Vous retrouverez le même vocabulaire dans les container queries : container-type: inline-size suit justement la taille en ligne.
Syntaxe
#inline-size: auto | <longueur> | <pourcentage> | min-content | max-content | fit-content;
block-size: auto | <longueur> | <pourcentage> | min-content | max-content | fit-content;Valeurs
#- Un élément de bloc occupe toute la longueur de ligne disponible, c’est-à-dire toute la largeur de son parent.
<longueur>
Une taille en ligne fixe. Dans un texte horizontal, cela correspond à 160px de largeur.<pourcentage>
La moitié de la taille en ligne du bloc englobant.axe de bloc
La paire pour l’axe de bloc. Dans un texte horizontal, elle définit la hauteur de l’élément.limite supérieure
Le paragraphe compte au plus environ 24 caractères par ligne. En écriture verticale, la même règle limiterait la hauteur de la colonne de texte.écriture verticale
En écriture verticale, l’axe en ligne va de haut en bas, doncinline-size: 100pxdéfinit la hauteur de l’élément, pas sa largeur. La largeur dépend maintenant du contenu.
Valeurs en pratique
#auto
.demo { inline-size: auto; }160px
.demo { inline-size: 160px; }50%
.demo { inline-size: 50%; }block-size: 80px
.demo { block-size: 80px; }max-inline-size: 24ch
.demo { max-inline-size: 24ch; }vertical-rl
inline-size: 100px définit la hauteur de l’élément, pas sa largeur. La largeur dépend maintenant du contenu..stage { writing-mode: vertical-rl; width: 100%; height: 170px; }
.demo { inline-size: 100px; }Compatibilité des navigateurs
#Largement disponible
Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.
- Chrome
- Edge
- Firefox
- Safari
Bonnes pratiques
#- Pour une colonne de texte,
max-inline-size: 65chfonctionne bien. En écriture verticale, la même règle limitera raisonnablement la hauteur de la colonne. - Ne définissez pas
widthetinline-sizesur le même élément. Elles décrivent la même dimension, donc c’est la déclaration qui arrive plus tard dans la cascade qui l’emporte, et c’est facile à manquer. - Si
inline-sizene semble pas fonctionner, vérifiez ledisplay. Tout commewidth, elle n’a aucun effet sur<span>ou<a>sans passer àinline-blockoublock.
Entrées associées
#- widthDéfinit la largeur d’un élément.
- heightDéfinit la hauteur d’un élément.
- max-widthDéfinit une largeur maximale, au-delà de laquelle l’élément ne s’étire pas.
- margin-inlineDéfinit les marges au début et à la fin d’une ligne. La version logique de margin-left et margin-right, qui comprend le sens d’écriture.
- container-typeTransforme un élément en conteneur dont les règles @container peuvent interroger la taille. Couvre aussi container-name et le raccourci container.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.