Start · Sprachen · JavaScript · Referenz · HTMLFontElement.size

HTMLFontElement.size

Eigenschaft

Veraltete Eigenschaft, die als String das <code>size</code>-Attribut eines <code>&lt;font&gt;</code>-Elements liest und setzt.

seit JavaScript Baseline: alle Browser (veraltet) deprecated seit ja Kategorie: webapi

Signatur

HTMLFontElement.size

Beschreibung

Die Eigenschaft HTMLFontElement.size spiegelt das HTML-Attribut size eines <font>-Elements wider. Der Wert ist immer ein String. Er kann eine absolute Größe von "1" bis "7" sein (Standard ist 3) oder eine relative Angabe wie "+2" bzw. "-1". Relative Werte beziehen sich auf die Basisgröße, die früher über <basefont> festgelegt wurde, und landen am Ende ebenfalls im Bereich 1–7.

Beim Lesen bekommt man genau den Text zurück, der im Attribut steht. Fehlt das Attribut, ist das ein leerer String. Setzt man die Eigenschaft, wird das Attribut geändert. Das hat denselben Effekt wie element.setAttribute("size", wert).

Sowohl das <font>-Element als auch diese Eigenschaft sind veraltet. Heute braucht man sie praktisch nur noch, um alte HTML-Inhalte zu lesen, zu analysieren oder in modernes Markup mit CSS umzuwandeln, etwa bei der Migration von Altinhalten oder in WYSIWYG-Editoren, die noch <font> erzeugen (z. B. über document.execCommand("fontSize")). In neuem Code legt man Schriftgrößen mit der CSS-Eigenschaft font-size fest.

Rückgabewert

Typ
string
Beschreibung
Der Inhalt des size-Attributs, z. B. "4", "+1" oder "-2". Fehlt das Attribut, ist es ein leerer String "".

Beispiele

Größe lesen und setzen

// Legacy-Markup: <font id="hinweis" size="2">Kleingedrucktes</font>
const font = document.getElementById('hinweis');

console.log(font.size);          // aktueller Wert
font.size = '+2';                // relativ vergrößern
console.log(font.getAttribute('size'));
2 +2

Fehlendes Attribut erkennen

const font = document.createElement('font');
console.log(JSON.stringify(font.size)); // kein Attribut gesetzt

font.size = 5;                           // Zahl wird zu String
console.log(typeof font.size, font.size);
console.log(font.outerHTML);
"" string 5 <font size="5"></font>

Migration: <font size> in CSS font-size umwandeln

// Übliche Zuordnung der HTML-Größen 1–7 zu CSS-Schlüsselwörtern
const sizeMap = {
  1: 'x-small', 2: 'small', 3: 'medium', 4: 'large',
  5: 'x-large', 6: 'xx-large', 7: 'xxx-large'
};

const toCssSize = (value) => {
  const trimmed = value.trim();
  if (!trimmed) return null;
  let n = Number.parseInt(trimmed, 10);
  if (Number.isNaN(n)) return null;
  // Relative Angaben beziehen sich auf die Basisgröße 3
  if (/^[+-]/.test(trimmed)) n = 3 + n;
  n = Math.min(7, Math.max(1, n));
  return sizeMap[n];
};

document.querySelectorAll('font[size]').forEach((font) => {
  const span = document.createElement('span');
  const css = toCssSize(font.size);
  if (css) span.style.fontSize = css;
  span.append(...font.childNodes);
  font.replaceWith(span);
});

console.log(toCssSize('+2'), toCssSize('1'), toCssSize('9'));
x-large x-small xxx-large

// Wichtig · Fallstricke

  • Veraltet: <font> ist seit HTML5 nicht mehr konform. Alle gängigen Browser unterstützen die Eigenschaft aus Kompatibilitätsgründen zwar noch, in neuem Code sollte man sie aber nicht verwenden. Nimm stattdessen CSS (font-size).
  • Immer ein String: Auch font.size = 5 wird als "5" gespeichert. Wer rechnen will, muss den Wert erst mit parseInt() umwandeln und dabei relative Werte wie "+1" gesondert behandeln.
  • Keine Prüfung des Werts: Ungültige Werte wie "abc" oder "12" werden ohne Fehlermeldung ins Attribut geschrieben. Der Browser begrenzt sie beim Darstellen auf 1–7 oder ignoriert sie ganz.
  • Keine berechnete Größe: size gibt nur den Attributtext zurück, nicht die tatsächlich dargestellte Schriftgröße. Die bekommt man über getComputedStyle(el).fontSize. CSS-Regeln haben Vorrang vor dem Attribut.
  • <basefont>, auf das sich relative Werte früher bezogen haben, wird von modernen Browsern nicht mehr unterstützt. Die Basis ist praktisch immer 3.