manni: Spaltenbreite einstellen

Beitrag lesen

Das Problem reduziert sich wirklich nur darauf, der Spalte einer Tabelle eine Breite zuzuweisen.
Im Detail: Ich will eine Tabelle mit feststehendem Kopf erstellen.
Vollständiger Quelltext:

<html>
<body onload="los();">
<script>
function tabscroll() {
  document.getElementById('divhead').scrollLeft=document.getElementById('divbody').scrollLeft;
}
function los() {
  for (i=1;i<3;i++;) {
    h=document.getElementById("col"+i+"head");
    b=document.getElementById("col"+i+"body");
    if (h.offsetWidth>b.offsetWidth) {
      b.style.width=h.offsetWidth;
    } else {
      h.style.width=b.offsetWidth;
    }
  }
}
</script>

<!-- Haupt-DIV die die gesamte Tabelle enthält Scrollen: Nein -->
<div style="width:200px;height:200px;overflow:hidden;">

<!-- Kopf-DIV die nur den Kopftext enthält Scrollen: Nein -->
<div id="divhead" style="height:18px;position:relative;overflow:hidden;"}>
<table cellpadding="0" cellspacing="0" border="0">
<tr height:18px">
  <td valign="top" id="col1head">Spalte 1</td>
  <td valign="top" id="col2head">Spalte 2</td>
</tr>
</table>
</div>

<!-- Rumpf-DIV die nur die Daten enthält Scrollen: Ja -->
<div id="divbody" style="width:200px;height:184px;position:relative;overflow:scroll;" onscroll="tabscroll();">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
  <td id="col1body">Spalte_1_mit_langem_Inhalt</td>
  <td id="col2body">Spalte_2</td>
</tr>
</table>

</div>

</div>

</body>
</html>

Idee:
Eine große div in der zwei kleine sind.
Die große div legt nur die darstellbare Größe der Tabelle fest,
Die erste kleine "divhead" zeigt eine Tabelle mit der Kopfzeile.
Die zweite kleine "divbody" zeigt die Rumpfdaten.
Wird die Rumpf-div gescrollt, sorgt die Funktion rabscroll für identisch Scrollpositionen der beiden divs.
Das Problem: Die Breite der Spalten in den Tabellen ist nicht identisch. Daher die Funktion "los", die bei onload ausgelöst wird.
Sie soll alle Spalten durchgehen und die Breiten jeweils anpassen.
Entscheidend hierfür ist, dass die breitere der beiden Spalten festlegt, welche Breite gesetzt wird.
Ich wollte das eigentlich nicht so kompliziert machen.
Es gibt keine Fehlermeldung, ich hab nur irgendwo einen Gedankenfehler drin. Die Funktion los setzt die Breite der Spalten eben nicht. Aber warum?
Danke.