Obtenir la hauteur de l'élément div en JavaScript

En HTML, quelles que soient les propriétés CSS que vous fournissez à un élément, soit à l’aide de feuilles de style CSS, soit à l’aide de JavaScript, elles sont définies dans le Document Object Model (DOM). Grâce à ce DOM, vous pouvez facilement accéder à ces valeurs ultérieurement dans le code JavaScript. Il existe différentes manières d’obtenir les valeurs des propriétés CSS dans JavaScript. Cet article présentera comment obtenir la propriété CSS height à partir de notre code JavaScript.

Vous trouverez ci-dessous le document HTML que nous avons créé. A l’intérieur, nous avons une balise body contenant un seul élément div ayant un id de container. Dans la balise head, nous avons fourni des styles de base à notre élément div comme la largeur, la hauteur, la bordure, le rembourrage, etc.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <style>
        #container{
            width: 100px;
            height: 50px;
            border: 1px solid red;
            padding: 4px;
            background-color: cadetblue;
        }
    </style>
</head>
<body>
    
    <div id="container"></div>

    <script></script>
</body>
</html>

Production:

obtenir la hauteur de l'élément div en JavaScript

Si vous exécutez le document HTML ci-dessus, vous verrez un rectangle comme celui-ci sur la fenêtre de votre navigateur.

Maintenant que nous avons tout configuré, appliquons diverses propriétés sur cet élément div container pour obtenir sa hauteur. Le code que nous allons écrire ira à l’intérieur des balises <script></script> présentes à l’intérieur de la balise body.

Différentes façons d’obtenir la hauteur des éléments div en JavaScript

Tout d’abord, nous allons récupérer la référence de l’élément container depuis le DOM HTML en utilisant la méthode getElementById(). Ensuite, nous allons stocker cet élément dans la variable element en JavaScript.

let element = document.getElementById('container');

Maintenant que nous avons l’élément div, obtenons la hauteur du div en utilisant diverses propriétés en utilisant JavaScript.

1. clientHeight

Le clientHeight renvoie la hauteur d’un élément incluant le remplissage sous forme de valeur entière.

console.log(element.clientHeight);

Production:

58

Puisque nous avons ajouté un rembourrage de 4px sur les quatre côtés du conteneur lors du calcul de la hauteur, qui est actuellement de 50px, le rembourrage de 4px en haut et 4px en bas, c’est-à-dire un rembourrage total de 8px sera être ajouté à la hauteur. Cela se traduira par une hauteur totale de 58px.

2. offsetHeight

Le offsetHeight se compose de la hauteur de l’élément qui inclut également le remplissage, les bordures et la barre de défilement horizontale (le cas échéant).

console.log(element.offsetHeight);

Production:

60

Semblable à la propriété clientHeight, la propriété offsetHeight prendra également un rembourrage 8px, la hauteur du contenu qui est de 50px et également la largeur de bordure qui est 1px en haut et 1px en bas qui est au total de 2px . La hauteur totale renvoyée par cette propriété sera donc 8 + 50 + 2 soit 60px.

3.  hauteur de défilement 

Le scrollHeight renvoie la hauteur du contenu, y compris le contenu qui n’est pas visible à l’écran en raison d’un débordement. Il n’inclut que le remplissage de l’élément, mais pas la bordure, la marge ou la barre de défilement horizontale.

La scrollHeight est similaire à la clientHeight. La seule différence entre clientHeight et scrollHeight est que la scrollheight peut également inclure la hauteur du contenu, qui n’est actuellement pas visible à l’écran en raison d’un débordement.

console.log(element.scrollHeight);

Production:

58

La hauteur du contenu est de 50px et le remplissage total est de 8px. Par conséquent, la hauteur totale renvoyée par la propriété scrollHeight est 58px.

4. getBoundingClientRect()

La méthode getBoundingClientRect() renvoie un objet qui contient des informations relatives à la largeur et à la hauteur de l’élément ainsi que sa position (x, y, haut, gauche, etc.) par rapport à la fenêtre. La hauteur calculée par cette méthode contient également un remplissage et des bordures.

console.log(element.getBoundingClientRect().height);

Production:

60

Ainsi, pour obtenir la hauteur de l’élément à partir de l’objet renvoyé par la méthode getBoundingClientRect(), nous devons utiliser la touche height pour obtenir la hauteur. Ici, la hauteur de l’élément est 50px, le rembourrage est 8px et la largeur de la bordure est 2px. Ainsi, une hauteur totale de 60px sera retournée par cette fonction.