table-layout: fixed und Breitenangaben per JavaScript. Google Chrome ignoriert’s? 27 August 2009

Mal wieder 2 Stunden um die Ohren gehauen und ein paar mehr Haare verloren für einen Bug im Google Chrome: Ich arbeite zur Zeit an einem AJAX Javascript-Widget, mit dem der Webseitenbenutzer komfortabel Daten in eine Tabelle eingeben kann, ähnlich wie Google Spreadsheet oder Zoho Sheets (Oder ganz plump: “Online-Excel”.)

Die Tabelle erfordert es, dass jede Zelle exakt so breit ist, wie ich das vorgebe. Dafür setze ich in der <table> also table-layout: fixed, dadurch sind nun einzig und alleine meine CSS-Breitenabgaben der Zellen und der Tabelle ausschlaggebend, der Browser passt also die Zellen nicht mehr dem Inhalt an. Das klappte auch alles bestens. Nur nicht im Google Chrome. Ich konnte machen, was ich wollte, wenn ich die Breiten der Tabelle und Zellen per Javascript (und meinem Liebling jQuery) angepasst hatte, passierte im Chrome einfach nichts. Beim IE (Ich weiß gar nicht, warum soviele über den IE mosern…), Firefox, Opera lief es perfekt…

Es lag letztendlich wie so oft an etwas ganz Einfachem: Im Stylesheet hatte ich für die Tabellen lediglich table-layout:fixed notiert, nicht aber width:, wozu auch, das wird ja von meinem Clientcode gesetzt, da der Wert erst zur Laufzeit bekannt ist. So wie es aussieht, besteht aber Chrome auf das Setzen von width (bereits im Stylesheet), sonst werden alle Breitenangaben per Javascript schlichtweg ignoriert… Merken!

table-layout fixed (Chrome)