Bitte macht Tabellenüberschriften sticky
- Im Web begegnet man häufig großen Datensätzen oder Tabellenlayouts.
- Bei Tabellen mit Hunderten von Zeilen beginnt das Problem, sobald man scrollt.
- Wenn der Tabellenkopf verschwindet, fällt es Nutzern schwer, sich zu merken, wozu jede Spalte gehört.
Fixierte Header
- Fixierte Header wirken fast wie Magie, sind aber sehr leicht umzusetzen.
- Man muss dem
thead nur zwei CSS-Eigenschaften hinzufügen:
position: sticky;
top: 0;
- Mit einer weltweiten Unterstützung von rund 96 % wird
sticky von vielen Browsern zuverlässig unterstützt.
- Das hilft auch dabei, die User Experience zu verbessern.
Meinung von GN⁺
- Wenn auf Websites große Tabellen verwendet werden, verbessert es die User Experience erheblich, wenn Nutzer die Überschriften der Tabelle auch beim Scrollen leicht sehen können.
- Dass sich der Tabellenkopf mit der CSS-Eigenschaft
position: sticky; einfach fixieren lässt, ist für Webentwickler eine nützliche Information.
- Da diese Funktion breit unterstützt wird, können Webentwickler sie in verschiedenen Browsern zuverlässig umsetzen.
1 Kommentare
Hacker-News-Kommentare
position: sticky;zu fixieren, aber sobald man etwas mit dem Tabelleninhalt macht, treten Probleme auf. Zum Beispiel wurde eine Funktion hinzugefügt, die die Scroll-Position wiederherstellt, wenn ein Nutzer durch die Tabelle scrollt, die Seite verlässt und dann zurückkehrt. Die wiederhergestellte Position ist jedoch immer um eine Zeile nach unten verschoben. Durch den transparenten Tabellenkopf ist oben zwar die gewünschte Zeile zu sehen, aber weil der Header darüberliegt, erscheint die nächste Zeile als erste sichtbare Zeile. Wenn die Scroll-Position unter Berücksichtigung der Header-Höhe angepasst wird, funktioniert es zunächst gut, liegt aber manchmal um ein paar Pixel daneben. Der Grund ist, dass die Tabelle groß ist, deshalb je nach Scroll-Event Lazy Loading verwendet wird, und außerdem das automatische Tabellenlayout aktiv ist, wodurch Header-Zellen manchmal zu schmal werden, Wörter umbrechen und die gesamte Header-Höhe zunimmt. Die endgültige Lösung war, einResizeObserverfür das Header-Element zu erstellen und die Scroll-Position dynamisch anzupassen, wenn sich die Höhe ändert. ResizeObserver-Dokumentation<th>-Tags zu verwenden, ist es sehr wahrscheinlich, dass genau dieses Verhalten gewünscht ist.stderr) und den Hauptteil an die Standardausgabe (stdout) zu senden. Andernfalls kann der Header beim Sortieren in die Ergebnisse geraten.position: stickybei<thead>- und<tr>-Elementen verwendet werden konnte: Chromium-Issue-Linktopunter Berücksichtigung des Rahmens gesetzt wird (z. B. 0 statt -1px), kann verhindert werden, dass der Tabellenkörper über den Header fließt. Es werden zwei CodePen-Beispiele verglichen: ursprüngliches CodePen und verbessertes CodePen