Max-height et max-width - Propriétés CSS.

max-height
max-width
max-inline-size
max-block-size

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

Description rapide
Définit une limite à la hauteur maximale de l'élément.
Statut
Standard
S'applique à
Tous les éléments qui acceptent height.
Utilisable sur
HTML
Valeurs prédéfinies
none | auto
Pourcentages
Calculés par rapport à la hauteur du bloc parent, si cette dernière est spécifiée.
Valeur initiale
none
Héritée par défaut
Non.
Computed value : lors d'une animation, la propriété max-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: REC (recommandation)

Description des propriétés.

Les propriétés physiques max-width et max-height.

Les deux propriétés max-width et max-height définissent les limites maximales pour les dimensions d'un élément. Elles sont prioritaires sur les propriétés width et height.

Ces deux propriétés sont intéressantes à combiner avec des dimensions exprimées en pourcentages. On obtient ainsi un élément qui s'adapte à la taille de l'écran mais qui reste dans des limites acceptables.

Voir également les propriétés min-width et min-height.

Les propriétés logiques max-block-size et max-inline-size.

Ces deux propriétés agissent en fonction du mode d'écriture de la langue de l'élément. Pour les langues latines max-inline-size est équivalente à max-width et max-block-size est équivalente à max-height.

Les propriété min-block-size et min-inline-size existent également.

Prise en charge du mode d'écriture et de la langue.

Les propriétés logiques max-inline-size et max-block-size ont le même rôle que les propriétés physiques max-width et max-height, sauf qu'elles prennent en compte la direction et le mode d'écriture, Ce qui donne les équivalences suivantes, en fonction de la langue.

<——— max-width ———>
La direction et le sens d'écriture de ce texte s'adaptent à la langue choisie.
<——— max-height ———>

Valeurs pour les propriétés max-width et max-height.

Les propriétés logiques max-block-size et max-inline-size ont une syntaxe identiques. Elles ne sont pas citées dans les exemples ci-après.

  • max-height: auto; max-width: auto;

    Les dimensions maximales sont déterminées par le navigateur en fonction des valeurs attribuées à width et height.

  • max-height: none; max-width: none;

    Aucune limite n'est fixée sur la hauteur ou sur la largeur de l'élément.

  • max-height: 400px; max-width: 400px;

    Une limite est fixée pour les dimensions de l'élément. La valeur indiquée doit être une valeur positive, du type dimension. Voir les unités de dimension.

    S'il s'agit de pourcentages, ils sont calculés par rapport aux dimensions du parent, avec les conventions suivantes:

    1. max-width est calculé par rapport à la largeur de l'élément parent.
    2. max-height est calculé par rapport à la hauteur de l'élément parent, à condition que celle-ci soit spécifiée, sinon les pourcentages sont assimilés à auto.
  • max-width: min-content; max-width: max-content; max-width: fit-content;

    Ces trois valeurs prédéfinies permettent d'ajuster la largeur minimale d'un élément en fonction de son contenu :

    • min-content : la dimension la plus petite qui n'oblige cependant pas à couper des mots mais en insérant autant de saut de ligne que nécessaire.
    • max-content : la dimension la plus grande, c'est à dire en insérant aucun retour à la ligne qui ne serait imposé dans le document.
    • fit-content : la dimension la plus grande qui soit compatible avec la place disponible.

    Pour des exemples de fonctionnement et des explications plus détaillées, reportez-vous à la description des valeurs min-content, max-content et fit-content.

  • max-height: stretch; max-width: stretch;

    En attente de définition.

  • max-height: initial; (none) max-height: inherit; max-height: revert; max-height: revertLayer; max-height: unset;
    max-width: initial; (none) max-width: inherit; max-width: revert; max-width: revertLayer; max-width: unset;

    Les valeurs communes sont présentées sur ces pages : initial, inherit, revert, revert-layer, unset.

Animation de la propriété max-width.

L'exemple est écrit pour la propriété max-width mais fonctionnerait bien sûr de la même façon pour l'une des propriétés max-height, max-block-size ou max-inline-size.

Il est assez rare d'animer ces propriétés car leur effet peut très bien être invisible sur l'écran si les dimensions réelles de l'élément ne dépassent pas les valeurs maximales.

Accéder à la propriété max-height par programme.

Modifier la valeur de max-height en Javascript.

Deux syntaxes Javascript permettent de modifier la valeur de max-height. La première utilise la notation habituelle en CSS : kebab-case pour le nom de la propriété (un tiret pour séparer les mots), et la deuxième utilise la notation plus courante en Javascript, en (une majuscule pour séparer les mots).

Javascript
let el = document.getElementById('id'); el.style['max-height'] = '10rem'; // ou let el = document.getElementById('id'); el.style.maxHeight = '10rem';

Lire en Javascript la valeur de max-height.

Ce code récupère la valeur de max-height lorsque cette dernière a été initialisée dans l'attribut style de l'élément (donc dans le code HTML). La valeur affectée via un sélecteur CSS n'est pas prise en compte.

La valeur est renvoyée dans la même unité que celle utilisée pour la définir, dans l'attribut style.

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

Lire la valeur calculée de max-height en Javascript.

La valeur calculée est celle qui résulte de l'évaluation des unités relatives (en particulier le pourcentage) et de la résolution de la cascade des héritages. La valeur calculée est toujours définie : cela peut être une valeur affectée via l'attribut style dans le code HTML, une valeur affectée via un sélecteur CSS, une valeur héritée, ou encore la valeur initiale de la propriété.

Dans le cas de max-height, la hauteur maximale ou la largeur maximale sont retournées en pixels, quelque soit l'unité utilisée pour la définir (sauf les pourcentages).

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

Modifier la valeur de la propriété max-height avec JQuery.

JQuery

$('#id').css('max-height', '10rem');
// ou
$('#id').css('maxHeight', '10rem');

Lire la valeur calculée de la propriété max-height avec JQuery.

La lecture de la propriété peut se faire avec les codes suivants. Comme en Javascript, la hauteur et la largeur maximales sont renvoyées en pixels ou en pourcentages.

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

Démonstration.

Utilisez les boutons ci-dessous pour afficher la valeur appliquée pour le premier bouton, et la valeur calculée pour le deuxième bouton. La valeur calculée est intéressante pour voir comment est stockée (sérialisée) la valeur. On constate en particulier que les valeurs exprimées dans une autre unités que le pixels sont converties en pixels, sauf en ce qui concerne le pourcentage.

Compatibilité des navigateurs avec max-height.

Pas de problème de compatibilité sur les propriétés max-height et max-width, ni avec les propriétés logiques équivalentes. La valeur stretch est cependant encore mal reconnue (2024) et doit être utilisée avec précaution. Il en est de même pour la fonction fit-content(). Firefox   permet cependant d'activer cette possibilité en modifiant un flag (accéder aux flags sur Firefox).

Colonne 1
Prise en charge des propriétés max-width et max-height pour définir les dimensions maximales d'un élément.
Colonne 2
Support des propriétés logiques max-inline-size et max-block-size (prenant en compte le mode d'écriture de la langue de l'élément).
Colonne 3
Prise en charge de la valeur stretch pour les propriétés max-height et max-width.
Colonne 4
Prise en charge de la fonction fit-content() appliquée à la propriété max-height.

Remarques :

(1) Depuis CSS2.1, Firefox applique max-height également aux tables.

(2) Utilise la valeur non standard -wekbit-fill-available.

(3) Désactivé par défaut. Peut être activé avec le flag layout.css.fit-content_function.enabled.

1
Propriétés
max-width
max-height
2
Propriétés
max-inline-size
max-block-size
3
Valeur
stretch
4
Fonction
fit-content()
Estimation de la prise en charge globale.
97%
96%
0%
0%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

KaiOS Browser

Opéra Mobile

Edge

Opéra

Safari

Safari sur IOS

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Firefox

Chrome

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Historique de la propriété max-height

Voir aussi, dans le même module que max-height

Les spécifications CSS éditées par le W3C sont organisées en modules. Les propriétés max-height et max-width font partie du module CSS Box Sizing Module, ainsi que les propriétés logiques max-inline-size et max-block-size. Les définitions suivantes sont également décrites dans ce même module.

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-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.