Height - Propriété CSS

Cette page concerne aussi les propriétés physiques :
- width
Définit la largeur de l'élément.
Et les propriétés logiques :
- inline-size
Définit la dimension de l'élément dans la direction des lignes. Pour les langues latines cette propriété est équivalente à width.
- block-size
Définit la dimension d'un l'élément suivant la direction des blocs. Pour les langues latines, cette propriété logique est équivalente à height.
height
width
inline-size
block-size

Résumé des caractéristiques de la propriété height

Description rapide
Définit la hauteur de l'élément.
Statut
Standard
S'applique à
Tous les élements du type bloc.
Utilisable sur
HTML, SVG
Valeurs prédéfinies
auto | min-content | max-content | fit-content
Pourcentages
Calculés par rapport à la hauteur de l'élément parent si celle-ci est fixée.
Valeur initiale
auto
Héritée par défaut
Non.
Computed value : lors d'une animation, la propriété height passe progressivement d'une valeur à une autre.
Module W3C
Module CSS - Dimensionnement des blocs
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: WD (document de travail)

Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Statut du document: DEPR (Ancienne spécification, déclarée obsolète)

Schéma syntaxique de height.

height - Syntax DiagramSyntax diagram of the height CSS property. See stylescss.free.fr for details. auto auto length length % % min-content min-content max-content max-content fit-content() fit-content()height:;height:;
Schéma syntaxique de la propriété height.

Sur les schéma, les termes en gras sont les mots prédéfinis de CSS, les autres termes sont décrits ci-dessous :

  • length est une valeur numérique suivie d'une des unités de dimension.
  • % est un pourcentage calculé par rapport à la largeur de l'élément parent.

Description de la propriété physique height.

Comme on pouvait s'en douter, la propriété height définit la hauteur de l'élément.

Cette propriété est dite "physique" car elles agit toujours sur la hauteur de l'élément quelque soit le mode d'écriture du texte. Le mode d'écriture dépend de la langue : les langues CJK par exemple s'écrivent du haut vers le bas.

Mode de calcul des dimensions.

Attention ! La propriété box-sizing modifie la façon de calculer les dimensions d'un élément :

box-sizing et height
box-sizing:content-box;
(Valeur par défaut)
La propriété height définit la hauteur du contenu de l'élément (marges intérieures exclues).
box-sizing et height
box-sizing:border-box;
La propriété height définit la hauteur de la bordure de l'élément (épaisseur de la bordure et marges intérieures incluses).

Voyez également les propriétés min-height et max-height qui peuvent imposer des contraintes sur la hauteur de l'élément. Et également la propriété width pour définir la largeur.

Description des propriétés logiques inline-size et block-size.

S'il est nécessaire d'intégrer des langues non latines, avec un mode d'écriture différent (de haut en bas par exemple), deux propriétés dites logiques ont été définies :

inline-size :
Définit la dimension de l'élément dans la direction des lignes. Pour les langues latines cette propriété est équivalente à width.
block-size :
Définit la dimension d'un l'élément suivant la direction des blocs. Pour les langues latines, cette propriété logique est équivalente à height.

⮜───── width ─────⮞
La direction et le sens d'écriture de ce texte s'adaptent à la langue choisie.
⮜──── height ────⮞

Si vous souhaitez plus d'explications sur la gestion des modes d'écriture en fonction de la langue, reportez-vous au tutoriel concernant les modes d'écriture.

Valeurs pour height.

Les valeurs décrites ci-après s'appliquent aussi bien à la propriété height qu'à la propriété logique correspondante : inline-size ou block-size.

  • height: auto;

    Le navigateur détermine automatiquement la hauteur de l'élément, en général la hauteur est déterminée de façon à ce que le contenu soit entièrement visible.

    La valeur auto dimensionne la hauteur de l'élément vert pour que tout le texte soit visible.
  • height: 200px;

    La hauteur de l'élément est imposée à la dimension indiquée. C'est un nombre positif ou égal à 0, suivi d'une unité de dimension (voir les unités de dimension). Le contenu peut donc éventuellement déborder de l'élément si la hauteur est définie à une valeur insuffisante. Voyez la propriété overflow pour masquer le débordement, ou afficher une barre de défilement.

    La hauteur de l'élément vert est imposée à une valeur insuffisante : le contenu peut déborder.

    Si la valeur est exprimée en pourcentages, la logique est plus compliquée et dépend de la façon dont est définie la hauteur de l'élément parent :

    • La hauteur de l'élément parent est fixée. Dans ce cas le pourcentage se calcule bien par rapport à la hauteur du parent.
    • La hauteur de l'élément parent n'est pas fixée (valeur auto par exemple). Dans ce cas le pourcentage utilisé pour fixer la hauteur de l'élément enfant n'est pas calculé :la hauteur est fixée à auto. Ceci a été pensé pour éviter un calcul insoluble : en effet, si le parent à une hauteur qui dépend du contenu (auto par exemple), on se retrouve avec un calcul circulaire insoluble : la hauteur du parent dépend de la hauteur du contenu et cette dernière dépend de la hauteur du parent.
    La hauteur du parent (bleu) n'est pas fixée.
    La hauteur de l'élément vert (50%) est ramenée à auto.
    La hauteur du parent est fixée à 150 pixels.
    La hauteur de l'élément enfant est bien de 50%.
  • height: min-content; height: max-content; height: fit-content; height: fit-content(d);

    Ces valeurs sont intéressantes pour du texte écrit verticalement, comme dans les langues CJK par exemple. Elles calculent une hauteur en fonction du contenu et de la place disponible.

    Pour une description plus précise de ces valeurs, reportez-vous à min-content, max-content, fit-content, fit-content().

  • height: initial; (auto) height: inherit; height: revert; height: revertLayer; height: unset;

    Ces valeurs sont décrites plus en détail sur leur page respective : initial, inherit, revert, revert-layer, unset.

Animation de la propriété height.

La propriété est souvent animée pour des effets visuels divers, comme par exemple faire dérouler un menu.

Édition
Annuler
Couper
Copier
Coller

Manipulation de la propriété height par programme.

Les exemples de code ci-dessous sont donnés avec la propriété height mais seront facilement transposables aux propriétés logiques.

Changement de la hauteur d'un élément avec Javascript.

Deux syntaxes sont possibles. La première accède aux styles via le tableau style[]. La deuxième utilise une notation plus habituelle dans les langages objets.

Javascript
let el = document.getElementById('id'); el.style['height'] = '5cm'; // ou let el = document.getElementById('id'); el.style.height = '5cm';

Récupération de la hauteur d'un élément avec Javascript.

Le code ci-dessous fonctionne si la propriété a été affectée, soit avec le code ci-dessus, soit directement à l'élément lui-même via son attribut style (et non pas en passant par un sélecteur CSS).

Javascript
let el = document.getElementById('id'); let value = el.style['height']; // ou let el = document.getElementById('id'); let value = el.style.height;

Récupération de la valeur calculée de height.

La valeur calculée est celle qui résulte de l'évaluation des unités relatives et d'un héritage éventuel provenant de la cascade. A défaut, la valeur calculée sera la valeur initiale de la propriété, soit auto dans le cas de block-size.

Javascript
let el = document.getElementById('id'); let value = window.getComputedStyle(el).getPropertyValue('height');

Changement de la hauteur d'un élément avec JQuery.

JQuery

$('#id').css('height', '5cm');

Récupération de la hauteur d'un élément avec JQuery.

JQuery
let value = $('#id').css('height');

Testez vous-même.

Les boutons ci-dessous appliquent la valeur saisie à la propriété block-size 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 sérialisée la valeur de block-size. On constate en particulier que toutes les unités sont converties en pixels.

Simulateur avec la propriété height.

Le simulateur ci-dessous permet de faire la différence entre les propriétés physiques, comme height, et les propriétés logiques comme block-size qui s'adaptent au mode d'écriture suivant les langues.


Mode d'écriture :

height :

block-size :

Le mode d'écriture (orientation et direction) de ce texte peut être modifié pour effectuer des tests dans différentes langues.

Prise en charge de height par les navigateurs.

Toutes ces propriétés sont correctement prises en charge par tous les navigateurs actuels. Cependant Internet Explorer ne traite pas les propriétés logiques (qui prennent en compte le sens d'écriture) mais IE n'est plus utilisé.

Colonne 1
Suppport de la propriété physique height pour définir la hauteur d'un élément.
Colonne 2
Support de la propriété logique (qui prend en compte le mode d'écriture de la langue) block-size pour définir la dimension d'un élément dans le sens des blocs.
Colonne 3
Support de la propriété logique (qui prend en compte le mode d'écriture de la langue) inline-size pour définir la dimension d'un élément dans le sens des lignes.
1
Propriété
height
2
Propriété
block-size
3
Propriété
inline-size
Estimation de la prise en charge globale.
96%
95%
95%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Opéra

Safari

Safari sur IOS

Firefox pour Androïd

Samsung Internet

Chrome

Edge

Firefox

Androïd Brower

Chrome pour Androïd

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Historique de la propriété height.

Voir aussi, concernant la dimension des éléments.

Les propriétés height, inline-size et block-size sont décrites dans le module Module CSS - Dimensionnement des blocs. De nombreuses autres définitions gèrent les dimensions d'un élément.

Propriétés :

aspect-ratio
Définit le ratio entre la largeur et la hauteur de l'élément.
Block-size
Définit la dimension d'un l'élément suivant la direction des blocs. Pour les langues latines, cette propriété logique est équivalente à height.
box-sizing
Définit le mode de calcul des dimensions de blocs : en incluant ou non les bordures et les marges intérieures.
contain-intrinsic-block-size
Définit la dimension de l'élément dans la direction des blocs, lorsque l'élément est confiné.
contain-intrinsic-height
Définit la hauteur intrinsèque de l'élément lorsque celui-ci est confiné.
contain-intrinsic-inline-size
Définit la dimension de l'élément dans la direction des lignes, lorsque l'élément est confiné.
contain-intrinsic-size
Définit les dimensions de l'élément (blocs et lignes) lorsque l'élément est confiné.
contain-intrinsic-width
Définit la largeur intrinsèque de l'élément lorsque celui-ci est confiné.
Height
Définit la hauteur de l'élément.
inline-size
Définit la dimension de l'élément dans la direction des lignes. Pour les langues latines cette propriété est équivalente à width.
max-height
Définit une limite à la hauteur maximale de l'élément.
max-width
Définit la largeur maximale de l'élément.
min-height
Définit la hauteur minimale de l'élément.
min-width
Définit la largeur minimale de l'élément.
width
Définit la largeur de l'élément.

Fonctions :

fit-content()
Calcule une dimension en fonction du contenu et de limites.

Valeurs:

fit-content
Calcule la dimension d'un élément en fonction de son contenu et de la place disponible.
max-content
Donne la dimension d'un texte sans insérer de retours à la ligne.
min-content
Donne la dimension d'un texte après avoir inséré le plus possible de retours à la ligne.