[HTML] Scrollbare Tabelle "scrollt nicht"

CFI

Lt. Commander
Registriert
Mai 2003
Beiträge
1.393
Hi,

habe mit hilfe von <div style="position:inherit; width:100%; height:100%; overflow:auto;"> mein Tabellenelement scrollbar gemacht.
Allerdings wird wenn ihc in obigem Code height auf 100% habe die Tabelle immer auf den gesamten Inhalt vergrößert und es kommt nicht wenn 100% der Seitenhöhe erreicht ist ein Scrollbalken.
Ich muss immer eine fixe höhe angeben damit auch gescrollt wird, das will ich aber nicht, da ich erreichen will, das die Seite immer, egal welche Auflöung, genau die Fensterhöhe hat, und wenn sie größer ist eben gescrollt wird.

hier noch der komplette Code:
PHP:
<table border="0" bordercolor="#FFFFFF" cellspacing="0" cellpadding="0" width=100% height=100%>
    <tr height="60">
             <td colspan="3">&nbsp;</td>
         </tr>
    <tr height="*">
             <td width=*>&nbsp;</td>
             <td class="site" width=80%>
            <table border="1" bordercolor=<?php echo "#".$headbg; ?> cellspacing="0" cellpadding="0" width=100%>
                          <tr><td><div style="position:inherit; width:100%; height:100%; overflow:auto;">
                              <table border="0" cellspacing="10" cellpadding="10" class="termine" width=100%>
                                     <?php
                                             $res = mysql_query("select typ, place, date_format(date, '%a, %d. %M %Y, %H:%i Uhr') as nDate from termine order by date");
                                                 $num = mysql_num_rows($res);

                                                 for($i = 0; $i < $num; $i++)
                                                 {
                                                     $date = mysql_result($res, $i, "nDate");
                                                         $typ = mysql_result($res, $i, "typ");
                                                         $typ = ereg_replace("n","",$typ);
                                                         $typ = ereg_replace("rn","<br>",$typ);
                                                         $place = mysql_result($res, $i, "place");

                                                         echo "<tr valign=top>
                                                     <td>
                                                                     $date
                                </td>
                                                         <td>
                                                             <b>$typ</b>
                                                                 </td>
                                                                 <td>
                                                                     $place
                                                                 </td>
                                                 </tr>
                                                 <tr height=10><td colspan=3></td></tr>";
                                                 }
                                         ?>
                                 </table>
                          </div></td></tr>
                         </table>
                 </td>
             <td width=*>&nbsp;</td>
         </tr>
    <tr height="75">
             <td colspan="3">&nbsp;</td>
         </tr>
</table>
Die Tabelle ist immer schon volle Höhe bis eben der inhalt im div-Bereich größer wird, dann wird auch die Setie höher, anstatt das gescrollt wird.
 
Nöp, overflow: auto; braucht einen Begrenzer und das ist die festen Höhenangabe.

Ein Lösungsweg ist IMHO die Auflösung des Clients per JS zu ermitteln und so Deinem Div eine feste Höhe je nach Auflösung zu geben.

Lasse mich aber gerne belehren :evillol:

Hurga
 
Eben genau das möchte ich nicht, da es dann bei deaktiviertem JS nicht mehr funktioniert...
 
Ok, dann solltest Du vielleicht eine Seite vorschalten, mit der Du die Leute in Auflösungen unterteilst. PHP läuft auf dem Server, da kannst nix mit auf dem Client auslesen oder verändern und ein ActiveX Script dürfte wohl kaum in Frage kommen (Hersteller orientiert und sehr sicherheitsrelevant).

Jaja, die Auflösungen ;-)

Hurga
 
Also, hab ich nicht getestet, weil ich sowas aus Prinzip nicht verwende. Ein Ansatz ist es aber allemal ;) :
HTML:
if (screen.height = 768) {
  deinDIV.style.height = 400px;
} else if (screen.height = 1024) {
  deinDIV.style.height = 600px;
}

Wobei Du Deinen DIV mit einer ID versehen solltest. Ich bin einfach davon ausgegangen, dass Dein DIV "deinDIV" heißt.
Das Script macht nichts anderes, als bei einer Bildschirmhöhe von 768 Pixeln, den DIV auf eine Höhe von 400px zu setzen und bei einer Höhe von 1024 Pixel (z.B. bei Anwendern mit 1280x1024) auf eine Höhe von 600px.

Grüße
Hurga
 
Ich nehme jetzt mal an screen.height gibt mir die Monitorauflösung zurück.
Ich möchte aber die Fensterhöhe haben, da die ja bei gleicher Monitorauflösung auch verschiedne sein kann...
 
hab's mit folgender funktion gelöst:
Code:
function Fensterhoehe ()
{
  if (window.innerHeight)
  {
    return window.innerHeight;
  }
  else if (document.body && document.body.offsetHeight)
  {
    return document.body.offsetHeight;
  }
  else
  {
    return 0;
  }
}

P.S.: JS ist für mich fast nur C/P ;)
 
Zurück
Oben