Signatur
Beschreibung
Die Eigenschaft chOff des Interfaces HTMLTableCellElement (also <td> und <th>) spiegelt das HTML-Attribut charoff wider. In HTML4 sollte damit festgelegt werden, um wie viele Zeichen der Zellinhalt gegenüber dem Ausrichtungszeichen verschoben wird. Dieses Zeichen wird über ch bzw. das Attribut char angegeben und wirkt nur zusammen mit align="char".
Kein aktueller Browser hat diese zeichenbasierte Ausrichtung je richtig umgesetzt. Die Eigenschaft ist deshalb eine reine Attribut-Spiegelung: Lesen liefert den Attributwert als String (oder "", wenn das Attribut fehlt), Schreiben setzt das Attribut charoff. Auf das Layout hat das keine Auswirkung.
Brauchbar ist chOff höchstens, wenn du Alt-Markup untersuchst oder aufräumst, zum Beispiel beim Umstellen alter HTML4-Tabellen auf CSS. Für neuen Code solltest du die Eigenschaft nicht verwenden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | "" | Nur beim Schreiben: der neue Wert für das Attribut charoff, z. B. "2". Zahlen werden in Strings umgewandelt. |
Rückgabewert
charoff oder ein leerer String, wenn das Attribut nicht gesetzt ist.Beispiele
Wert lesen und setzen
const cell = document.createElement('td');
console.log(JSON.stringify(cell.chOff)); // Attribut fehlt
cell.chOff = 2; // Zahl wird zum String
console.log(cell.chOff);
console.log(cell.getAttribute('charoff'));
console.log(cell.outerHTML);
Veraltete Attribute in alten Tabellen finden und entfernen
// Alle Zellen mit veralteten Ausrichtungsattributen bereinigen
const legacyCells = document.querySelectorAll('td[charoff], th[charoff], td[char], th[char]');
legacyCells.forEach((cell) => {
console.log(`Entferne charoff="${cell.chOff}" char="${cell.ch}"`);
cell.removeAttribute('charoff');
cell.removeAttribute('char');
});
console.log(`${legacyCells.length} Zelle(n) bereinigt`);
Moderner Ersatz: Dezimalzahlen per CSS ausrichten
// Statt ch/chOff: rechtsbündig mit gleich breiten Ziffern
const priceCells = document.querySelectorAll('td.preis');
priceCells.forEach((cell) => {
cell.style.textAlign = 'right';
cell.style.fontVariantNumeric = 'tabular-nums';
});
console.log(`${priceCells.length} Preiszellen ausgerichtet`);
// Wichtig · Fallstricke
- Keine Wirkung: Das Setzen von
chOffändert die Darstellung in keinem Browser. Die Eigenschaft ändert nur das Attributcharoff. - Veraltet:
charoffist in HTML5 nicht mehr zulässig. Validatoren melden es als Fehler. - Immer ein String: Auch Zahlen werden als String gespeichert. Prüf- oder Validierungslogik gibt es nicht.
- Kompatibilität: Die Eigenschaft ist aus Kompatibilitätsgründen in allen gängigen Browsern (Chrome, Firefox, Safari, Edge) vorhanden, aber überall ohne Wirkung.
- Alternative: Für die Ausrichtung nimm CSS, etwa
text-align: rightzusammen mitfont-variant-numeric: tabular-nums. Die geplante CSS-Syntaxtext-align: \".\"(Ausrichtung an einem Zeichen) wird bisher von keinem Browser unterstützt.