Start · Sprachen · JavaScript · Referenz · HTMLImageElement.align

HTMLImageElement.align

Eigenschaft

Veraltete String-Eigenschaft, die das HTML-Attribut <code>align</code> eines <code>&lt;img&gt;</code> widerspiegelt und die Ausrichtung des Bildes relativ zum umgebenden Inhalt festlegt.

seit JavaScript Veraltet (HTML 4.01); in allen Browsern weiterhin deprecated seit ja Kategorie: webapi

Signatur

HTMLImageElement.align

Beschreibung

Die Eigenschaft align von HTMLImageElement spiegelt das gleichnamige HTML-Attribut eines <img>-Elements wider. Sie bestimmt, wie das Bild zum umgebenden Text bzw. zur Zeile ausgerichtet wird: "left" und "right" lassen das Bild wie bei CSS float an den Rand fließen, "top", "middle" und "bottom" steuern die vertikale Ausrichtung zur Grundlinie wie vertical-align.

Die Eigenschaft ist veraltet und gehört zu den präsentationsbezogenen Altlasten aus HTML 4. Browser unterstützen sie aus Kompatibilitätsgründen weiterhin, neue Projekte sollten aber ausschließlich CSS verwenden: float für horizontale Ausrichtung und vertical-align für vertikale Ausrichtung.

Sinnvoll ist align heute vor allem beim Auslesen oder Migrieren von Alt-Markup, etwa um bestehende align-Attribute automatisiert in moderne CSS-Regeln zu überführen.

Parameter

Name Typ Default Beschreibung
$value string "" Beim Setzen: einer der Werte "left", "right", "top", "middle", "bottom" (Groß-/Kleinschreibung egal). Browser erkennen teils zusätzlich "center", "baseline", "texttop", "absmiddle", "absbottom". Der Wert wird unverändert ins Attribut geschrieben.

Rückgabewert

Typ
string
Beschreibung
Der aktuelle Wert des align-Attributs genau so, wie er im Markup steht, oder ein leerer String "", wenn das Attribut fehlt.

Beispiele

Ausrichtung auslesen und setzen

const img = document.createElement('img');
img.src = 'logo.png';
img.alt = 'Logo';

console.log(JSON.stringify(img.align)); // Attribut fehlt

img.align = 'right';
console.log(img.align);
console.log(img.getAttribute('align'));
"" right right

Alt-Markup nach CSS migrieren

// Wandelt veraltete align-Attribute in moderne CSS-Eigenschaften um
const migrateImageAlign = (root = document) => {
  for (const img of root.querySelectorAll('img[align]')) {
    const value = img.align.toLowerCase();

    if (value === 'left' || value === 'right') {
      img.style.float = value;
    } else if (['top', 'middle', 'bottom'].includes(value)) {
      img.style.verticalAlign = value;
    }

    img.removeAttribute('align');
  }
};

migrateImageAlign();
console.log(document.querySelectorAll('img[align]').length);

Empfohlene moderne Alternative mit CSS

const img = document.querySelector('img');

// Statt img.align = 'left':
img.style.float = 'left';
img.style.marginInlineEnd = '1rem';

// Statt img.align = 'middle':
// img.style.verticalAlign = 'middle';

console.log(getComputedStyle(img).float);
left

// Wichtig · Fallstricke

  • Veraltet: Die Eigenschaft ist im HTML Living Standard als obsolet markiert. Validatoren melden das Attribut als Fehler. Verwenden Sie stattdessen CSS float bzw. vertical-align.
  • Der Wert wird nicht normalisiert: img.align = 'LEFT' liefert beim Auslesen wieder "LEFT". Vergleiche daher immer mit toLowerCase().
  • Ungültige Werte werden ohne Fehlermeldung ins Attribut übernommen, haben aber keinen Effekt auf die Darstellung.
  • CSS-Regeln (z. B. float im Stylesheet) haben Vorrang, da align nur als präsentationaler Hinweis mit sehr niedriger Spezifität wirkt.
  • "middle" verhält sich in Browsern nicht exakt wie vertical-align: middle, sondern richtet die Bildmitte an der Grundlinie aus; das Ergebnis kann leicht abweichen.
  • Kompatibilität: In allen gängigen Browsern (Chrome, Firefox, Safari, Edge) weiterhin verfügbar, eine Entfernung ist aus Kompatibilitätsgründen unwahrscheinlich.