Les principes du flux et des modèles de boîte en CSS

Flux, éléments et dimensions de base

Les éléments HTML se distinguent en éléments de bloc et éléments en ligne.

Éléments de bloc

Ces éléments occupent toute la largeur disponible et commencent sur une nouvelle ligne. Des exemples courants incluent div, li et table.

Éléments en ligne

Ils s'affichent en séquence horizontale, similaire au texte, sans saut de ligne. On trouve des balises comme span et label.

Modèle de boîte

Le modèle de boîte comprand plusieurs types : border-box, margin-box, padding-box et content-box. Par défaut, les propriétés width et height affectent la boîte de contenu. L'attribut box-sizing permet de modifier cette comportement.

* {
  box-sizing: border-box;
}

Modèle de boîte pour les éléments en ligne

On distingue : la zone de contenu (autour du texte), la boîte externe de l'élément, la boîte de ligne pour chaque rangée, et la boîte englobante formée par l'ensemble des lignes.

Nœud espace fantôme

Appelé strut, il précède chaque boîte de ligne, possède les propriétés de police et de hauteur de ligne de l'élément, avec une largeur nulle.

Éléments en ligne et flux

Caractère x

La ligne de base du texte correspond au bord inférieur du glyphe « x » dans la police utilisée.

Hauteur de ligne

La hauteur de ligne est contrôlée par line-height. Une valeur numérique comme 1.5 signifie 1.5 fois la taille de la police. L'espacement entre lignes est réparti à moitié au-dessus et au-dessous : (line-height - font-size)/2.

Alignement vertical

La propriété vertical-align gère l'alignement du texte. baseline et middle se réfèrent au glyphe « x », tandis que top et bottom s'alignent sur la boîte de ligne.

Altération et préservation du flux

L'utilisation de width et float sur un div peut perturber le flux ; il est recommandé de l'éviter.

Positionnement

Les éléments restent à leur position initiale lorsqu'aucun positionnement n'est appliqué.

Bloc englobant

Le bloc englobant sert de référence pour le calcul et le positionnement des éléments. Pour l'élément racine, il correspond à la fenêtre du navigateur. Pour un positionnement relative ou static, il est défini par la boîte de contenu de l'ancêtre le plus proche. fixed utilise le bloc initial, et absolute se base sur l'ancêtre positionné le plus proche.

Profondeur z-index

L'ordre de superposition est le suivant : 1. contexte d'empilement d'arrière-plan/bordure, 2. z-index négatif, 3. boîtes de bloc, 4. boîtes flottantes, 5. boîtes en ligne, 6. z-index auto ou 0, 7. z-index positif. Les règles sont : la valeur la plus élevée domine, et en cas d'égalité, le dernier élément défini prend le dessus.

Les contextes d'empilement sont créés par : l'élément racine, un z-index numérique, ou certaines propriétés CSS3.

Gestion du texte

Polices personnalisées

@font-face {
  font-family: 'MaPolice';
  src: url('chemin/police.woff');
}

Affichage et masquage des éléments

Plusieurs méthodes permettent de contrôler la visibilité : display, visibility, clip, z-index, et opacity.

Étiquettes: CSS HTML Box Model Inline Elements Block Elements

Publié le 15 juin à 18h00