Dokitura: Spalten ausblenden im IE(8)

hallo liebe community,

nun sitze ich seit einigen tagen an diesem problem, und bin langsam aber sicher mit meinem latein am ende. folgendes will im ie einfach nicht klappen:
ich möchte bestimmte spalten, d.h. td-elemente (zur zeit) über display:none ausblenden. wenn ich das tue, hängt er mir ganz rechts weiterhin für offenbar jedes ausgeblendete td einen abstand der breite des angegebenen cellspacing(bzw border-spacing) mit der hintergrund-farbe der tabelle an.
schon bei folgendem simplen beispiel funzt es nicht:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
	<head>  
		<script type="text/javascript"><!--  
			var iDiff=5, iStart=1, iEnd=50;  
			function show_hide_elem(bShow)  {  
				for (var i=iStart+iDiff; i<=iEnd-iDiff; i++) {  
					var oTd=document.getElementById("td-"+i);  
					if (oTd==null) continue;  
					oTd.style.display=(bShow)?"":"none";  
					//oTd.style.visibility=(bShow)?"visible":"hidden";  
				}  
			}  
			  
			window.onload = function() {  
				var oTr=document.getElementById("tr-0");  
				for (var i=iStart; i<=iEnd; i++) {  
					var oTd=document.createElement("td");  
					oTd.setAttribute("id","td-"+i,0);  
					oTd.appendChild(document.createTextNode(""+i));  
					oTr.appendChild(oTd);  
				}  
			}  
		--></script>  
		<style type="text/css">  
			table.tableMain{  
				border:3px solid black;  
				background-color:red;  
				/*border-spacing:2px;*/  
				/*border-collapse:collapse;*/  
			}  
			table.tableMain td{  
				padding:0px 5px 0px 2px; /* top right bottom left */  
				background-color:yellow;  
			}  
		</style>  
	</head>  
	  
	<body>  
		<script type="text/javascript"><!--  
			document.write("Zellen "+(iStart+iDiff)+" bis "+(iEnd-iDiff));  
		--></script><br />  
		<a href="#" onclick="show_hide_elem(1); return false;">einblenden</a><br />  
		<a href="#" onclick="show_hide_elem(0); return false;">ausblenden</a><br />  
		<table cellspacing="5" class="tableMain">  
			<tr id="tr-0">				  
			</tr>  
		</table>  
	</body>  
</html>  

was mache ich hier falsch?
ich benutze ie 8 (win xp). ich habe bereits die hiesige suche benutzt, jedoch waren die aufkommenden treffer nicht unbedingt das, was ich suche.
d.h. ua suche ich hierbei nicht unbedingt eine lösung mittels colgroup, da ich eine tabelle entwickelt habe, die komplexer aufgebaut ist (d.h. hauptspalten, mit untergeordneten spalten, colspans, etc. ... weiß nicht, inwieweit sich das mittels colgroup definieren ließe).

ich wäre für jeden konstruktiven vorschlag dankbar.

mfg, doki

  1. Hallo Dokitura,

    also meine Tabellen, die ich auch hier schon einige Male vorgestellt habe "klappen" auch im IE8 weiterhin und zwar sowohl zeilen- wie auch spaltenwiese

    Mit ColSpans zu arbeiten macht das spaltenweise zusammenklappen natürlich extrem kompliziert. Willst du dir das wirklich antun? Gibt es einen strukturellen Grund für dieses ColSpans, die du dann auch noch dynamisch neuberechnen müsstest oder dienen sie nur zu Layoutzwecken?

    Gruß Gernot

    1. hallo gernot,

      erstmal danke für deine antwort.
      ja, ich hab deine variante teilweise übernommen betreff border-collapse:collapse; jedoch weiß ich nich ob es in früheren versionen (>= ie v6) funzt, weswegen ich das topic hier noch offen halte :). ist auch etwas umständlich geworden der code, aber wie ich so lsangsam mitbekomme, is das unausweichlich wenn man auch für ie implementieren will (mache erst seit kurzem web-entwicklung).

      betreff deiner colspan-frage:
      ich sags mal so: "sowohl als auch" ... strukturell fürs einklappen von den spalten, die dem colspan untergeordnet sind, als auch layoutmäßig für "bessere übersicht" (o.ä., weiß nicht genau worauf sich das layout sonst beziehen könnte). den tabellen code erzeuge ich dynamisch mittels ruby (bzw. rails) abhängig von einer dafür definierten tabellen-hash. falls du nich so mit ruby arbeitest, es funzt auf alle fälle, nur das einklappen machte noch probleme im ie betreff rechter seitenrand in der tabelle, wie bereits beschrieben.

      mfg,
      doki