David: Wieso klappt es nicht so wie es soll? (Tabelle unter Netscape)

Hi alle,

Folgender Source soll eine Tabelle mit 2 pixel breitem Rand links und rechts darstellen. Der IE macht das auch soweit richtig. Nur bei Netscape habe ich 2 Probleme.

1. Der Rand ist ca. 5 pixel breit (also nicht 2 Pixel).
2. Die Tabelle geht nicht über die komplette Höhe des Frames (ist ein Frame innerhalb eines Framesets.

<!----------- Start: Frame mit Tabelle ----------->

<BODY TOPMARGIN="0" BOTTOMMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
<TABLE WIDTH="95%" HEIGHT="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center">
<TR>
  <TD HEIGHT="100%" BGCOLOR="#B3245D"><IMG SRC="images/blank.gif" WIDTH="2" HEIGHT="1" BORDER="0"></TD>
  <TD WIDTH="100%" HEIGHT="100%" ALIGN="left" VALIGN="top">
<!-- Start [INCLUDE: startseite.inc] -->
<SCRIPT LANGUAGE="JavaScript" SRC="scripts/twoframes.js"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript" SRC="scripts/resize.js"></SCRIPT>

<TABLE ALIGN="center" WIDTH="100%" BORDER="0" HEIGHT="100%">
<TR><TD ALIGN="center">
<A HREF="javascript:twoFrames('Menu', 'menu.php3?method=1&id=1', 'Main', 'main.php3?method=1&id=1')"><IMG SRC="images/logo_full_small.gif" ALT="NOVALINE Logo" BORDER="0"></A><BR>
<BR>
<A HREF="javascript:pictureResize('haus');"><IMG NAME="haus" SRC="images/haus_small.jpg" WIDTH=200 HEIGHT=150 ALT="Das Firmengebäude / anklicken zum Ändern der Größe" BORDER="0"></A>
</TD></TR>
</TABLE>
<!-- Ende [INCLUDE: startseite.inc] -->
  </TD>
  <TD HEIGHT="100%" BGCOLOR="#B3245D"><IMG SRC="images/blank.gif" WIDTH="2" HEIGHT="1" BORDER="0"></TD>
</TR>
</TABLE>
<!-- Start [INCLUDE: footer.inc] -->
</BODY>
</HTML>
<!-- Ende [INCLUDE: footer.inc] -->

<!----------- Ende: Frame mit Tabelle ----------->

<!----------- Start: Frameset ----------->

<FRAMESET ROWS="68, *, 30" BORDER="0" FRAMEBORDER="0" FRAMESPACING="0">

<FRAME NAME="Menu" SRC="menu.php3" MARGINHEIGHT="0" MARGINWIDTH="0">  
<FRAME NAME="Main" SRC="main.php3" MARGINHEIGHT="0" MARGINWIDTH="0"> <!-- das ist das besagte Frame -->  
<FRAME NAME="Ticker" SRC="ticker.php3" MARGINHEIGHT="0" MARGINWIDTH="0">  

</FRAMESET>

<!----------- Ende: Frameset ----------->

Ich verstehe einfach nicht, was daran falsch sein soll.
Hoffentlich sieht jemand von euch den Fehler. :)

Gruss,
  David

  1. Vielleicht sollte ich den Wust auf ein Minimum (daß den selben Fehler produzuiert) reduzieren ;)...

    Also hier nochmal alles in kompakt. Und bitte, bitte sagt mir, warum der Netscape so stur (dumm?) ist *seufz*.

    <!----------- Start: Frame mit Tabelle ----------->
    <HTML>
    <HEAD></HEAD>
    <BODY TOPMARGIN="0" BOTTOMMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
      <TABLE WIDTH="95%" HEIGHT="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center">
        <TR>
          <TD HEIGHT="100%" BGCOLOR="#B3245D"><IMG SRC="images/blank.gif" WIDTH="2" HEIGHT="1" BORDER="0"></TD>
          <TD WIDTH="100%" HEIGHT="100%" ALIGN="left" VALIGN="top">Inhalt</TD>
          <TD HEIGHT="100%" BGCOLOR="#B3245D"><IMG SRC="images/blank.gif" WIDTH="2" HEIGHT="1" BORDER="0"></TD>
        </TR>
      </TABLE>
    </BODY>
    </HTML>
    <!----------- Ende: Frame mit Tabelle ----------->

    <!----------- Start: Frameset ----------->
    <HTML>
    <HEAD></HEAD>
      <FRAMESET ROWS="68, *, 30" BORDER="0" FRAMEBORDER="0" FRAMESPACING="0">
        <FRAME NAME="Menu" SRC="menu.php3" MARGINHEIGHT="0" MARGINWIDTH="0">
        <FRAME NAME="Main" SRC="main.php3" MARGINHEIGHT="0" MARGINWIDTH="0"> <!-- das ist das besagte Frame -->
        <FRAME NAME="Ticker" SRC="ticker.php3" MARGINHEIGHT="0" MARGINWIDTH="0">
      </FRAMESET>
    </HTML>
    <!----------- Ende: Frameset ----------->

    Gruss,
      David

    1. Hi David
      1. Tabellenhoehe
      Das Problem liegt daran, dass Netscape Probleme mit den relativen Groessenangaben hat.
      Wenn du z.B eine Tabelle in der Tabelle anlegst und diese innere Tabelle 100% hoch haben willst, weigert sich Netscape. Da kann man meines Wissens nach auch nichts dran machen.
      (Ich hab irgendwan mal was in der Formsauslese darueber gelesen)

      2. Randproblem
      Um das Randproblem zu loesen, kannst du einfach die Tabellenzelle mit dem Inhalt auf z.B.
      1200 setzen (nicht zu klein, damit auch die Leutchen mit 21Zoll Bildschirmen zufrieden sind). Dann sind bei mir die aussenraender so klein wie sie sein sollen (2px) und der
      Inhaltsteil nimmt den Rest ein (und zum Glueck nicht etwa 1200!!).
      Ich hoffe wenigstens ein bischen geholfen zu haben
      Holger

    2. Hallo!

      <BODY TOPMARGIN="0" BOTTOMMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">

      Es heisst topmargin und leftmargin.

      <TABLE WIDTH="95%" HEIGHT="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center">

      mit width=95% und align=center sorgst dafür das die Tabelle in der Mitte der Seite steht egal wie breit diese ist. Dein mittlerer Frame hat ja keine feste Breite = Tabelle wird je nach Bilschidmauflösung immer unterscheidlich weit von Fensterrand entfernt sein.

      <TR>
      <TD HEIGHT="100%"
      <TD WIDTH="100%"
      <TD HEIGHT="100%

      So, deine Tabelle hat height=100%. Dann haben die 3 Zellen jeweils height=100%, das macht also 300%. Du hast ber nur 100% zur Verfügung.

      Grüße
      Thomas

      1. Hi Thomas
        Bei dem Kommentar zu den Zellenhoehen ist dir ein Denkfehler unterlaufen.

        Davids Tabelle sieht doch ungefaehr so aus:
        __________________________
                                                   
                                                   
                                                   
                                                   
                                                   
        ____ _______________ ____

        Da ist es doch kein Problem, dass jede Zelle 100% hoch ist!
        Es wuerde allerdings reichen die height Angabe nur in der linken Zelle zu machen, weil dann die beiden anderen Zellen automatisch auch 100% hoch sind.
        Holger

        1. Hallo Holger!

          Bei dem Kommentar zu den Zellenhoehen ist dir ein Denkfehler unterlaufen.

          Stimmt!
          Ich sollte mal auch horizontal denken.

          Grüße
          Thomas

      2. Moin Thomas,

        Hallo!

        <BODY TOPMARGIN="0" BOTTOMMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0">
        Es heisst topmargin und leftmargin.

        Nein. Es heisst TOPMARGIN, BOTTOMMARGIN, LEFTMARGIN und RIGHTMARGIN. Das ist aber nicht das Problem. Hauptsachte ist, daß das Frame maximal hoch ist, und das erreiche ich durch TOPMARGIN, BOTTOMMARGIN und MARGINHEIGHT.

        <TABLE WIDTH="95%" HEIGHT="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" ALIGN="center">
        mit width=95% und align=center sorgst dafür das die Tabelle in der Mitte der Seite steht egal wie breit diese ist. Dein mittlerer Frame hat ja keine feste Breite = Tabelle wird je nach Bilschidmauflösung immer unterscheidlich weit von Fensterrand entfernt sein.

        Richtig, so ist es auch geplant. Links und rechts je 2,5% Freiraum und dazwischen der Inhalt mit 2 Pixel breitem Rahmen rechts und links.

        So, deine Tabelle hat height=100%. Dann haben die 3 Zellen jeweils height=100%, das macht also 300%. Du hast ber nur 100% zur Verfügung.

        Ein Denkfehler.. wie Holger schon sagte.

        ----

        Ich habe jetzt mal die Breite der inneren Tabelle auf einen festen Wert (1600) gesetzt, und siehe da, es klappt soweit mit dem 2 Pixel breiten Rahmen. Nur muss ich zu meinem Bedauern feststellen, daß Netscape meine Tabelle nie 100% groß macht. Er plant immer noch die Breiter möglicher Scrollbars mit ein. Sage ich SCROLLING="no", dann wird die Tabelle zwar maximal groß, es passt jedoch nicht mehr mit den anderen Frames, bei denen ich scrolling nicht unterbinden kann und bei denen somit Platz reserviert wurde. Jetzt habe ich jedoch mal SCROLLING="vertical" versucht.. und siehe da, es klappt :).

        Gruss, David