Start · Sprachen · JavaScript · Referenz · HTMLImageElement.vspace

HTMLImageElement.vspace

Eigenschaft

Veraltete Eigenschaft, die den vertikalen Leerraum in Pixeln über und unter einem <code>&lt;img&gt;</code>-Element liest oder setzt. Sie spiegelt das HTML-Attribut <code>vspace</code> wider.

seit JavaScript Veraltet (HTML 4.01-Erbe), in allen Browsern weite deprecated seit ja Kategorie: webapi

Signatur

HTMLImageElement.vspace

Beschreibung

Die Eigenschaft vspace des Interfaces HTMLImageElement gibt an, wie viele Pixel Leerraum oberhalb und unterhalb eines Bildes freigehalten werden. Sie spiegelt das gleichnamige, veraltete HTML-Attribut vspace wider. Der Wert ist eine nicht-negative Ganzzahl vom Typ number.

Browser übersetzen das Attribut intern in die CSS-Eigenschaften margin-top und margin-bottom (als sogenannten „presentational hint“). Ein ausdrücklich gesetzter CSS-Rand hat deshalb Vorrang vor vspace.

Die Eigenschaft stammt aus der Zeit vor CSS und ist im HTML-Standard als veraltet eingestuft. Sie ist nur noch sinnvoll, wenn man alten Code pflegt oder Altbestände an Markup auswertet. In neuem Code setzt man stattdessen margin-block bzw. margin-top/margin-bottom per CSS oder über element.style.

Parameter

Name Typ Default Beschreibung
$value number 0 Beim Schreiben: Anzahl der Pixel für den vertikalen Abstand. Der Wert wird zu einer vorzeichenlosen Ganzzahl umgewandelt und in das Attribut vspace geschrieben.

Rückgabewert

Typ
number
Beschreibung
Der aktuelle Wert des Attributs vspace als Ganzzahl in Pixeln. Fehlt das Attribut oder ist es ungültig, wird 0 zurückgegeben.

Beispiele

vspace auslesen und setzen

const img = document.createElement('img');
img.src = 'logo.png';
console.log(img.vspace); // kein Attribut vorhanden

img.vspace = 12;
console.log(img.vspace);
console.log(img.getAttribute('vspace'));
document.body.append(img);
0 12 "12"

Altes Markup auf CSS umstellen

// Alle Bilder mit vspace-Attribut finden und auf margin-block umstellen
const migrateVspace = () => {
  for (const img of document.querySelectorAll('img[vspace]')) {
    const px = img.vspace;
    img.style.marginBlock = `${px}px`;
    img.removeAttribute('vspace');
    console.log(`Migriert: ${img.src} -> ${px}px`);
  }
};

migrateVspace();
Migriert: https://example.com/foto.jpg -> 10px

Moderne Alternative ohne vspace

const img = new Image(200, 100);
img.src = 'banner.png';
// Statt img.vspace = 8:
img.style.marginTop = '8px';
img.style.marginBottom = '8px';
document.body.append(img);
console.log(getComputedStyle(img).marginTop);
8px

// Wichtig · Fallstricke

  • Veraltet: vspace ist im HTML-Standard als obsolet markiert. Validatoren melden das Attribut als Fehler. Nutze CSS (margin-block, margin-top, margin-bottom).
  • CSS hat Vorrang: Das Attribut wirkt nur als presentational hint. Jede CSS-Regel für margin-top/margin-bottom überschreibt es, auch eine mit geringer Spezifität.
  • Negative oder ungültige Werte: Der Wert wird als vorzeichenlose Ganzzahl (unsigned long) behandelt. Nicht-numerische Attributwerte liefern beim Lesen 0. Wie sich das Zuweisen negativer Zahlen auswirkt, ist in älteren Browsern nicht einheitlich.
  • Nur Pixel: Prozentwerte oder Einheiten wie em sind nicht möglich.
  • Kompatibilität: Wird aus Gründen der Rückwärtskompatibilität von allen gängigen Browsern (Chrome, Firefox, Safari, Edge) weiterhin unterstützt. Man sollte sich aber nicht darauf verlassen, dass das dauerhaft so bleibt.