Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

HTMLImageElement : propriété x

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨juillet 2015⁩.

La propriété en lecture seule x de l'interface HTMLImageElement indique la coordonnée x du bord gauche de l'élément HTML <img> par rapport à l'origine de l'élément racine.

Les propriétés x et y ne sont valides pour une image que si sa propriété display a pour valeur calculée table-column ou table-column-group. Cela signifie que l'une de ces valeurs est définie explicitement, héritée d'un élément parent, ou appliquée parce que l'image se trouve dans une colonne définie par <col> ou <colgroup>.

Valeur

Un entier indiquant la distance en pixels entre le bord gauche de l'élément racine le plus proche et le bord gauche de la boîte de bordure de l'élément <img>. L'élément racine le plus proche est l'élément <html> le plus à l'extérieur qui contient l'image. Si l'image est dans un élément HTML <iframe>, sa valeur x est relative à ce cadre.

Dans le schéma ci-dessous, le bord gauche correspond au bord gauche de la zone de remplissage bleue. La valeur retournée par x est donc la distance entre ce point et le bord gauche de la zone de contenu.

Schéma montrant les relations entre les différentes boîtes associées à un élément

Note : La propriété x n'est valide que si la valeur calculée de la propriété display de l'image est table-column ou table-column-group : soit l'une de ces valeurs est définie directement sur l'élément <img>, soit elle est héritée d'un parent, soit l'image se trouve dans une colonne définie par <col> ou <colgroup>.

Exemple

L'exemple ci-dessous montre l'utilisation des propriétés x et y de HTMLImageElement.

HTML

Dans cet exemple, un tableau affiche des informations sur des utilisateur·ice·s d'un site web, dont leur identifiant, leur nom complet et leur avatar.

html
<table id="userinfo"> <colgroup> <col span="2" class="group1" /> <col /> </colgroup> <tr> <th>Identifiant utilisateur</th> <th>Nom</th> <th>Avatar</th> </tr> <tr> <td>12345678</td> <td>Johnny Rocket</td> <td> <img src="/shared-assets/images/examples/grapefruit-slice.jpg" /> </td> </tr> </table> <pre id="log"></pre> 

JavaScript

Le code JavaScript ci-dessous récupère l'image du tableau et affiche ses valeurs x et y.

js
const logBox = document.querySelector("pre"); const tbl = document.getElementById("userinfo"); const log = (msg) => { logBox.innerText += `${msg}\n`; }; const cell = tbl.rows[1].cells[2]; const image = cell.querySelector("img"); log(`X global de l'image : ${image.x}`); log(`Y global de l'image : ${image.y}`); 

Ce code utilise la propriété rows de l'élément <table> pour obtenir la liste des lignes du tableau. Il sélectionne la ligne d'index 1 (c'est-à-dire la deuxième ligne à partir du haut, car l'indexation commence à 0). Ensuite, il regarde l'élément <tr> correspondant et utilise la propriété cells pour obtenir la liste des cellules de cette ligne. La troisième cellule (index 2) est sélectionnée.

À partir de là, on récupère l'élément <img> de la cellule en appelant un querySelector() sur l'élément HTMLTableCellElement correspondant.

Enfin, on affiche les valeurs des propriétés x et y de l'objet HTMLImageElement.

CSS

Le CSS qui définit l'apparence du tableau :

css
.group1 { background-color: #d7d9f2; } table { border-collapse: collapse; border: 2px solid rgb(100 100 100); font-family: sans-serif; } td, th { border: 1px solid rgb(100 100 100); padding: 10px 14px; } td > img { max-width: 4em; } 

Résultat

Le tableau résultant ressemble à ceci :

Spécifications

Specification
CSSOM View Module
# dom-htmlimageelement-x

Compatibilité des navigateurs