Signatur
Beschreibung
Die Eigenschaft align des Interfaces HTMLTableColElement spiegelt das HTML-Attribut align eines <col>- oder <colgroup>-Elements wider. Sie ist ein String und sollte ursprünglich festlegen, wie der Inhalt aller Zellen einer Spalte horizontal ausgerichtet wird. Mögliche Werte waren "left", "center", "right", "justify" und "char".
Die Eigenschaft liest und schreibt nur den Attributwert. Der Browser prüft ihn nicht: Fehlt das Attribut, kommt ein leerer String "" zurück. Ungültige Werte werden ohne Fehlermeldung übernommen. Beim Setzen landet der Wert unverändert im Attribut align im DOM.
Das Attribut ist veraltet. Moderne Browser übertragen es in der Regel nicht auf die Zellen der Spalte. Die Eigenschaft ist daher vor allem nützlich, um bestehendes (Legacy-)Markup auszulesen oder in modernes CSS umzuwandeln. Für neue Projekte nutzt du CSS mit text-align auf den Zellen, etwa über td:nth-child(n).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value | string | "" | Nur beim Setzen: neuer Wert des Attributs, z. B. "left", "center", "right", "justify" oder "char". Der Wert wird nicht geprüft. |
Rückgabewert
align. Ist das Attribut nicht gesetzt, ist es ein leerer String.Beispiele
Ausrichtung einer Spalte auslesen
// HTML: <table id="preise"><colgroup><col><col align="right"></colgroup>...</table>
const cols = document.querySelectorAll('#preise col');
cols.forEach((col, i) => {
console.log(`Spalte ${i + 1}:`, col.align || '(nicht gesetzt)');
});
Wert setzen – wirkt nur auf das Attribut
const col = document.createElement('col');
col.align = 'center';
console.log(col.getAttribute('align'));
console.log(col.outerHTML);
Legacy-Markup in CSS text-align umwandeln
// Überträgt veraltete col-align-Werte als CSS auf die Zellen
const migrateColAlign = (table) => {
const cols = [...table.querySelectorAll('col')];
cols.forEach((col, index) => {
const align = col.align.toLowerCase();
if (!['left', 'center', 'right', 'justify'].includes(align)) return;
for (const row of table.rows) {
const cell = row.cells[index];
if (cell) cell.style.textAlign = align;
}
col.removeAttribute('align');
});
};
migrateColAlign(document.querySelector('#preise'));
// Wichtig · Fallstricke
- Veraltet: Das Attribut
alignan<col>/<colgroup>ist in HTML5 obsolet. Die Eigenschaft gibt es aus Kompatibilitätsgründen zwar in allen Browsern, die Darstellung beeinflusst sie aber meist nicht mehr. - Keine Wirkung auf Zellen: Firefox, Chrome und Safari richten den Inhalt der Zellen nicht nach
col.alignaus. Auch CSS-text-alignam<col>hat keine Wirkung:<col>unterstützt nurborder,background,widthundvisibility. Setzetext-alignstattdessen direkt auf die Zellen, z. B.td:nth-child(2) { text-align: right; }. - Keine Prüfung: Ungültige Werte wie
"mitte"werden kommentarlos übernommen. Vergleiche Werte am besten ohne Beachtung der Groß-/Kleinschreibung, z. B. mittoLowerCase(). - Der Wert
"char"gehört zu den ebenfalls veralteten EigenschaftenchundchOff. Er wurde nie zuverlässig unterstützt.