Ich habe eine Tabelle mit einigen CSS zu verstecken/Spalten zeigen. Jede td hat die Klassen "column" und "columnX", wobei X die Spaltennummer ist. Das css sieht so aus:Alte IEs aktualisieren CSS nicht dynamisch
.column { display: none; }
table.show1 .column1 { display: block; }
table.show2 .column2 { display: block; }
Die Tabelle beginnt alle ausgeblendet und der Benutzer schaltet sie ein. Wenn dies geschieht, wird eine Tabelle wie "show1" oder "show2" zur Tabelle hinzugefügt, abhängig von der angezeigten Spalte.
Dies funktioniert hervorragend in FF, Chrom und IE8. Aber IE6/7 haben ein Problem, bei dem eine "Spalte" nicht zu "display: block" wird. Wenn ich jedoch in der Entwicklersymbolleiste gehe und die css-Regel umschalte,
table.showX .columnX {display: block; }
es funktioniert gut. Es ist so, als ob diese alten Browser nicht wissen, dass sie die Tabelle aktualisieren müssen, wenn sie über Javascript ausgeführt werden. Auch, wenn ich eine Klasse wie "show0" zu der Tabelle hinzufügen (nicht in Javascript), funktioniert es in IE6/7 gut.
Alle bekannten Problemumgehungen dafür?
Wie haben Sie Ihr Problem gelöst? Auch das Einstellen von visibility: hidden scheint nicht zu funktionieren, obwohl es als Fix vorgeschlagen wurde. Konntest du das zum Laufen bringen? –
Nein, keiner dieser Vorschläge funktionierte für mich. Was ich hier gemacht habe, ist, was ich hier beschreibe: Die Spalten, die unsichtbar sein sollen, beginnen sichtbar, und dann lasse ich etwas Javascript laufen, um sie auszuschalten. Es ist lächerlich, aber es ist das Einzige, von dem ich weiß, dass es funktioniert. (Lass es mich wissen, wenn du etwas Besseres findest !!) – Pointy
Oh, auch wenn das "Sichtbarkeit" Ding funktioniert hat, wäre es nicht das was du wahrscheinlich willst. In meinem Fall habe ich wirklich gewollt, dass die Spalten komplett weg sind. Mit "Sichtbarkeit: versteckt" würde immer noch Platz auf dem Bildschirm eingenommen. – Pointy