Uppe: Tabelle scrollen, Header fest

Hallo Experten,

ich möchte in einer langen Tabelle scrollen,der Tabellenkopf soll aber fest stehen bleiben.

Ich habe mir gedacht,dass man das über Frames lösen könnte. Dazu habe ich jetzt zwei Tabellen angelegt (den Kopf der Tabelle und den Inhalt getrennt)

<frameset rows=100,*>  
</frameset>  
<tr>  
"Kopf"  
</tr>  
<tr>  
"Inhalt"  
</tr>

bewirkt nichts.
Wie muss ich jetzt das mit dem Frameset anstellen?

Danke und Gruß
Uppe

  1. Frames nur für eine Tabelle? Stell ich mir jetzt nicht gerade anspruchsvoll aussehend vor.
    Pack doch den Tabellenrumpf in ein div und lass dieses scrollen. Dann hast du (wie bei Frames) immer noch das Problem dass Header und Inhalt die gleiche Breite haben müssen, aber das ist ja mit festen Breiten lösbar.

  2. Om nah hoo pez nyeetz, Uppe!

    Frames sind böse. Verzichte auf sie.

    Lösungsvorschläge findest du in .

    Matthias

    --
    http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. Hallo,

      vielen Dank. Mit den Tipps habe ich jetzt folgenden Code zusammengebastelt.

      <TABLE style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-BOTTOM-STYLE: none" cellSpacing=0>  
      <COLGROUP>  
      <COL width=116>  
      <COL width=118>  
      <COL width=308>  
      <COL width=84>  
      <COL width=123>  
      <COL width=52>  
      <COL width=160></COLGROUP>  
      <TBODY>  
      <TR style="FONT-WEIGHT: bold; VERTICAL-ALIGN: middle; COLOR: #ffffff; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none" bgColor=#778899><FONT size=3>  
      <TD class=ms-rtetablecells>Date</TD>  
      <TD class=ms-rtetablecells>Systems</TD>  
      <TD class=ms-rtetablecells>Actions</TD>  
      <TD class=ms-rtetablecells>Time</TD>  
      <TD class=ms-rtetablecells>Additonal information</TD>  
      <TD class=ms-rtetablecells>Event</TD>  
      <TD class=ms-rtetablecells>Status</TD></FONT></TR></TBODY></TABLE>  
      <DIV style="OVERFLOW: auto; WIDTH: 100%; HEIGHT: 450px">  
      <TABLE style="VERTICAL-ALIGN: middle; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none" cellSpacing=0>  
      <COLGROUP>  
      <COL width=70>  
      <COL width=170>  
      <COL width=300>  
      <COL width=90>  
      <COL width=200>  
      <COL width=60>  
      <COL width=80></COLGROUP>  
      <TBODY>  
      <TR bgColor=#f0ffff>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>24.11.2010</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>SAP GRP</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>Downtime</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>Sa., 18:00<BR>-<BR>Su., 20:00</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>On behalf of: ATH IT</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>88,888</FONT></TD>  
      <TD class=ms-rtetablecells><FONT face=Arial size=2>Successfully<BR>finished</FONT></TD></FONT></TR>  
      </TBODY></TABLE></DIV>
      

      Das Scrollen funktioniert auch super.

      Nun habe ich noch zwei Probleme, die durch unterschiedliche Browser und Bildschirmauflösungen entstehen.
      Bei mir sind die beiden Tabellen gleich breit und die Spalten sind genau untereinander.
      Bei meinem Kollegen ist der untere Teil links und rechts jeweils etwas breiter als der Tabellenkopf in der ersten Tabelle und die Spalten sind nicht genau übereinander.

      Wie kann ich das anpassen?

      Danke und Gruß
      Uppe

      1. Hi,

        anstatt mich per Mail zu kontaktieren, hätte deine Reaktion eigentlich genau hier hergehört. Nicht dass ich etwas gegen Mails habe - ich fand es nur in diesem Fall nicht sinnvoll.

        [code lang=html]<TABLE style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-BOTTOM-STYLE: none" cellSpacing=0>
        <COLGROUP>
        <COL width=116>
        <COL width=118>
        <COL width=308>
        <COL width=84>
        <COL width=123>
        <COL width=52>
        <COL width=160></COLGROUP>

        Wie ich schon sagte: Elementnamen, Attributnamen, CSS-Eigenschaften bitte konsequent klein schreiben. Das ist erstens leichter lesbar, zweitens die empfohlene Schreibweise.
        Ebenso empfohlen ist auch, Attributwerte grundsätzlich in Anführungszeichen zu setzen. Sobald im Attributwert ein Zeichen auftritt, das weder Buchstabe noch Ziffer ist, *muss* das sogar sein.

        Wenn die "Entschuldigung" darin besteht, dass das verwendete Programm "das eben so macht", dann ist das ein deutliches Zeichen, dieses Programm zu entsorgen und etwas Vernünftiges zu nehmen.

        <TBODY>
        <TR style="FONT-WEIGHT: bold; VERTICAL-ALIGN: middle; COLOR: #ffffff; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none" bgColor=#778899><FONT size=3>

        Hier hast du außerdem ungültiges HTML: Abgesehen davon, dass das font-Element hier genausowenig zu suchen hat wie viele deiner Attribute (zur Gestaltung gibt es schließlich CSS, und bitte nicht als Inline-Style!), darf es nicht an dieser Stelle stehen. font kann niemals Kindelement von tr sein, da sind nur td und th zulässig.

        <TD class=ms-rtetablecells>Date</TD>
        <TD class=ms-rtetablecells>Systems</TD>
        <TD class=ms-rtetablecells>Actions</TD>
        <TD class=ms-rtetablecells>Time</TD>
        <TD class=ms-rtetablecells>Additonal information</TD>
        <TD class=ms-rtetablecells>Event</TD>
        <TD class=ms-rtetablecells>Status</TD></FONT></TR></TBODY></TABLE>

        Die Tatsache, dass *alle* td-Elemente innerhalb einer Tabellenzeile dieselbe Klasse haben, deutet auf einen Designfehler hin. Die Klasse gebührt dann dem tr-Element; in diesem Fall vielleicht sogar der Tabelle an sich.

        Nun habe ich noch zwei Probleme, die durch unterschiedliche Browser und Bildschirmauflösungen entstehen.
        Bei mir sind die beiden Tabellen gleich breit und die Spalten sind genau untereinander.

        Glück gehabt.

        Bei meinem Kollegen ist der untere Teil links und rechts jeweils etwas breiter als der Tabellenkopf in der ersten Tabelle und die Spalten sind nicht genau übereinander.

        Ja. Tabellen haben nun mal die Eigenschaft, dass die Spalten dynamisch verbreitert werden, wenn ihr Inhalt das erfordert. Das HTML-Attribut width gibt hier nur eine Mindestbreite an. Möglicherweise hat dein Kollege geringfügig andere Schriftarten oder -größen, während es mit deinen Einstellungen gerade so reicht.

        Wie kann ich das anpassen?

        Wenn du möchtest, dass deine Breitenangaben streng umgesetzt werden, und nicht nur als Empfehlungen verstanden werden, gib dem table-Element die entsprechende Eigenschaft.

        Zum Doppelposting weiter unten: Es ist Unfug, wenn man annimmt, ein erneutes Posting würde einem wieder mehr Aufmerksamkeit verschaffen. Meistens ist eher das Gegenteil der Fall. Bleib daher einfach im bestehenden Thread; man sieht ja schließlich, dass wieder etwas Neues dazugekommen ist. Manche Teilnehmer lassen sich die Threads sogar nach Aktualität sortieren.

        So long,
         Martin

        --
        Chef zum Bewerber: Es gibt zwei Dinge, auf die ich allergrößten Wert lege. Das eine ist Sauberkeit! Haben Sie übrigens die Schuhe auf der Matte abgetreten? - Ja, selbstverständlich. - Gut. Das andere ist uneingeschränkte Ehrlichkeit. Übrigens, draußen liegt gar keine Fußmatte.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(