Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

HTMLImageElement: x-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Die schreibgeschützte x-Eigenschaft der HTMLImageElement-Schnittstelle gibt die x-Koordinate des linken Randes des <img>-Elements relativ zum Ursprung des Wurzelelements an.

Die x- und y-Eigenschaften sind nur für ein Bild gültig, wenn seine display-Eigenschaft den berechneten Wert table-column oder table-column-group hat. Mit anderen Worten: Es hat entweder explizit einen dieser Werte gesetzt, es hat ihn von einem enthaltenen Element geerbt, oder es befindet sich innerhalb einer Spalte, die entweder durch <col> oder <colgroup> beschrieben wird.

Wert

Ein ganzzahliger Wert, der den Abstand in Pixeln vom linken Rand des nächstgelegenen Wurzelelements und dem linken Rand der Randbox des <img>-Elements angibt. Das nächstgelegene Wurzelelement ist das äußerste <html>-Element, das das Bild enthält. Wenn sich das Bild in einem <iframe> befindet, ist sein x relativ zu diesem Frame.

Im Diagramm unten ist der linke Rand die linke Kante des blauen Polsterbereichs. Der von x zurückgegebene Wert wäre also der Abstand von diesem Punkt zur linken Kante des Inhaltsbereichs.

Diagramm, das die Beziehungen zwischen den verschiedenen mit einem Element verbundenen Kästen zeigt

Beispiel

Das folgende Beispiel demonstriert die Verwendung der HTMLImageElement-Eigenschaften x und y.

HTML

In diesem Beispiel sehen wir eine Tabelle, die Informationen über Benutzer einer Website zeigt, einschließlich ihrer Benutzer-ID, ihres vollständigen Namens und ihres Avatar-Bildes.

html
<table id="userinfo">
  <colgroup>
    <col span="2" class="group1" />
    <col />
  </colgroup>
  <tr>
    <th>UserID</th>
    <th>Name</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

Der JavaScript-Code, der das Bild aus der Tabelle abruft und seine x- und y-Werte nachschlägt, ist unten aufgeführt.

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(`Image's global X: ${image.x}`);
log(`Image's global Y: ${image.y}`);

Dies verwendet die rows-Eigenschaft des <table>, um eine Liste der Zeilen in der Tabelle zu erhalten, aus der Zeile 1 (was, da es sich um einen Null-basierten Index handelt, die zweite Zeile von oben bedeutet) nachgeschlagen wird. Dann wird auf die cells-Eigenschaft des <tr> (Tabellenzeile)-Elements zugegriffen, um eine Liste der Zellen in dieser Zeile zu erhalten. Die dritte Zelle wird aus dieser Zeile genommen (wobei erneut 2 als Null-basierter Offset angegeben wird).

Von dort aus können wir das <img>-Element selbst aus der Zelle abrufen, indem wir querySelector() auf das die Zelle darstellende HTMLTableCellElement aufrufen.

Schließlich können die Werte der x- und y-Eigenschaften des HTMLImageElement nachgeschlagen und angezeigt werden.

CSS

Das CSS, das das Erscheinungsbild der Tabelle definiert:

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;
}

Ergebnis

Die resultierende Tabelle sieht so aus:

Spezifikationen

Specification
CSSOM View Module
# dom-htmlimageelement-x

Browser-Kompatibilität

Siehe auch