Inline-block CSS
La leçon précédente a cartographié les valeurs quotidiennes de display. Ici vous entraînez l’hybride : inline-block. Vous voulez des voisins sur une ligne quand il y a de la place — comme du texte — tout en gardant une vraie boîte qui respecte width, height et padding. C’est le travail.
Comparaison côte à côte
📊 Inline vs inline-block vs block
| Mode | Comportement de ligne | Width / height / padding |
|---|---|---|
inline |
S’assoit dans la ligne de texte | Width/height souvent ignorés ; le padding peut paraître bizarre |
inline-block |
Reste dans la ligne s’il reste de la place | Width, height et padding agissent comme une boîte |
block |
Commence sur sa propre ligne | Modèle de boîte complet ; remplit souvent la largeur de la rangée |
Choisissez inline-block quand l’élément doit partager une rangée avec ses frères tout en ayant une taille mesurable — chips, étiquettes, libellés d’icône, boutons compacts de barre. Laissez les colonnes pleine page et l’alignement complexe à Flexbox et Grid plus tard.
Un chip dimensionné qui partage encore la ligne
Contrairement à un inline pur, un chip peut garder padding et largeur fixe tout en s’asseyant à côté d’autres chips.
.chip {
display: inline-block;
width: 7rem;
padding: 0.4rem 0.75rem;
text-align: center;
border: 1px solid #c5c5c5;
border-radius: 999px;
background: #f7f7f7;
}
Une barre d’outils simple
Plusieurs contrôles de même largeur peuvent s’asseoir sur une rangée. Séparez-les avec margin. Cela suffit pour une barre calme avant l’arrivée de Flexbox.
.tool {
display: inline-block;
width: 5.5rem;
padding: 0.5rem 0;
text-align: center;
margin-right: 0.35rem;
border: 1px solid #0b5fff;
border-radius: 0.35rem;
background: #e8f0ff;
}
Alignement vertical dans la ligne
Les boîtes de niveau inline peuvent avoir des hauteurs différentes à côté du texte ou d’images. vertical-align les décale — middle est un choix calme courant pour les paires icône+libellé.
.icon {
display: inline-block;
width: 1.25rem;
height: 1.25rem;
vertical-align: middle;
background: #0b5fff;
border-radius: 0.2rem;
}
.label {
display: inline-block;
vertical-align: middle;
margin-left: 0.4rem;
font-weight: 600;
}
Le piège de l’écart d’espaces blancs
Les navigateurs traitent espaces et retours à la ligne entre balises comme des nœuds texte. Entre deux frères inline-block, ce petit espace devient un écart visible. Ce n’est pas le gap Flexbox — c’est du whitespace HTML restant.
/* HTML comme :
<span class="tile">A</span>
<span class="tile">B</span>
laisse un écart à cause du retour à la ligne. */
.tile {
display: inline-block;
width: 3rem;
padding: 0.5rem 0;
text-align: center;
background: #fff3cd;
}
Pour calmer l’écart : mettez les balises sur une ligne sans espace, commentez le retour, ou utilisez avec soin une petite marge négative. Plus tard, Flexbox donne un espacement plus propre — ne forcez pas chaque rangée via inline-block pour toujours.
Une habitude calme d’inline-block
Utilisez une classe partagée pour les éléments de rangée. Dimensionnez-les exprès. Corrigez le whitespace seulement quand l’écart gêne. Ne reconstruisez pas des mises en page entières avec des inline-blocks imbriqués — la douleur de l’ère float revient. Position et float ont leurs leçons.
.row-item {
display: inline-block;
vertical-align: top;
width: 8rem;
padding: 0.75rem;
margin: 0 0.25rem 0.5rem 0;
border: 1px solid #ddd;
box-sizing: border-box;
}
Essayez vous-même
- Construisez trois
.chipeninline-block, largeur fixe et padding — regardez-les partager une ligne. - Faites une barre
.toolde quatre boutons à largeurs égales avecmargin-right. - Placez un petit
.iconà côté d’un.labelet testezvertical-align: middle. - Mettez deux frères
.tilesur des lignes HTML séparées puis sur une seule — comparez l’écart. - Écrivez une phrase : quand inline-block suffit-il, et quand attendre Flexbox ?
Erreurs courantes
- S’attendre à ce qu’un
inlinepur honorewidth/heightcomme une vraie boîte - Blâmer le CSS pour un « écart mystérieux » qui est en réalité du whitespace HTML entre balises
- Utiliser inline-block pour inventer toute une mise en page multi-colonnes
- Traiter cette leçon comme le survol large de
display(block / none) de la précédente - Sauter ici vers des recettes
positionoufloatau lieu de maîtriser l’hybride
Résumé
inline-blocks’assoit dans une ligne comme du texte mais garde un vrai modèle de boîte pour la taille et le padding- Idéal pour chips, barres compactes et paires icône+libellé
vertical-alignaide à aligner des voisins de hauteurs différentes- Le whitespace entre balises peut créer un écart visible — connaissez la cause
- Pour les rangées complexes et les écarts propres, Flexbox vient plus tard ; gardez inline-block intentionnel
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut