Markus: IE macht ungewollten Abstand nach ausgerichteten Tabellen (easy?)

Folgende harte Nuss, bei der sich hier schon drei Leute die Zaehne ausgebissen haben,
eigentlich aber Basis-HTML zu sein scheint:

Ich habe 4 Tabellen, die in einer eigentlich üblichen Form ausgerichtet werden sollen.

Symbolische Darstellung:
____________________
     _________2_______     Netscape macht ausnahmsweise mal alles richtig,
                                       nur der IE4 und höher können nicht damit umgehen.
                                  
1                                    Wenn ich die linke Tabelle align="left" setze, macht
               3                      der IE einen kleinen Spalt/Abstand vor der nächsten
                              4       Tabelle, so dass diese nicht direkt an der vorherigen
                                       anliegen kann.
___________________       Wenn ich dann die nächste Tabelle auch align="left"
                                         setze, verschwindet zwar der Abstand, dafür wird aber
die dritte Tabelle (logischerweise) rechts davon angeordnet, was ich aber nicht will,
sondern die dritte Tabelle soll unter der zweiten aber rechts von der ersten angeordnet
werden. (wer jetzt komplett verwirrt ist -> Symbolische Darstellung).

Ich suche eine saubere HTML-Lösung, und keine forcierten <BR> Tags zum
umbrechen o.ä.!

Kann mir vielleicht jemand 'nen Tip geben.
Gruesse Markus!

PS: Source-Code folgt:

<HTML>
<HEAD>
<TITLE>Warum macht IE nach ALIGN="left" einen Abstand? </TITLE>
</HEAD>

<BODY TEXT="#000000" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BOTTOMMARGIN="0">

<!-- Beginn der linken (blau) Tabelle -->

<TABLE ALIGN="LEFT" WIDTH="150" HEIGHT="400" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
  <TR>
    <TD BGCOLOR="#004BB7">links</TD>
  </TR>
</TABLE>

<!-- Beginn der oberen (gruen) Tabelle -->

<!-- HIER DIE PROBLEMSTELLE -->
<TABLE WIDTH="630" HEIGHT="25" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
  <TR>
<TD BGCOLOR="#00CC82">-- Hier ist beim IE ein unbeabsichtigter Abstand</TD>
  </TR>
</TABLE>

<!-- Beginn der mittleren (rot) Tabelle -->

<TABLE ALIGN="LEFT" WIDTH="500" HEIGHT="375" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
  <TR>
    <TD BGCOLOR="#BB0033">mitte</TD>
  </TR>
</TABLE>

<!-- Beginn der rechten (blau) Tabelle -->

<TABLE ALIGN="LEFT" WIDTH="130" HEIGHT="375" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
  <TR>
    <TD BGCOLOR="#004BB7">rechts</TD>
  </TR>
</TABLE>

</BODY>
</HTML>

Danke für's wackere Durchlesen!

  1. Hallo Markus!

    Wie wärs, wenn du 4 Tabellen als "Untertabellen" in einer übergeordneten Tabelle definierst? Der Abstand der einzelnen Untertabellen würde sich durch Angaben wie Rahmenbreite, Zellenabstand usw. festlegen lassen.

    mfg
    Marin

  2. Hallo,

    darf man fragen warum du es dir selbst so schwer machst?

    <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%">
    <tr>
      <td rowspan="2" height="100%" width="150" bgcolor="#004BB7">LINKS</td>
      <td colspan="2" height="25" bgcolor="#00CC82">OBEN</td>
      
    </tr>
    <tr>
      <td height="100%" width="100%" bgcolor="#BB0033">MITTE</td>
      <td height="100%" width="130" BGCOLOR="#004BB7">RECHTS</td>
    </tr>
    </table>

    ACHTUNG! nicht getestet, sollte aber so aussehen wie du es möchtest.

    lg
    Ludwig

    1. Nochmal zur Sicherheit:
      Um weiteren Tips zur Lösung mit EINER Tabelle vorzugreifen:

      Die Site wird sehr viel Inhalt bekommen.
      Wenn ich alles in eine Tabelle packe muss der Besucher warten
      bis alles geladen ist, bevor er etwas zu sehen bekommt,
      da Tabellen in HTML erst angezeigt werden, wenn sie
      komplett geladen sind.

      Deshalb verteile ich den Inhalt auf 4 Tabellen, die dann
      nacheinander geladen und angezeigt werden.
      Auf diese Weise kann man die Navigation schon sehen und
      anklicken, bevor man den ganzen anderen "Mist" geladen hat.

      Trotzdem danke erstmal für die schnellen Antworten.
      Wäre aber sehr dankbar für weitere Tips!

      Gruss, Markus.

      Hallo,

      darf man fragen warum du es dir selbst so schwer machst?

      <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%">

      »»  <tr>

      <td rowspan="2" height="100%" width="150" bgcolor="#004BB7">LINKS</td>
        <td colspan="2" height="25" bgcolor="#00CC82">OBEN</td>

      »»  </tr>
      »»  <tr>

      <td height="100%" width="100%" bgcolor="#BB0033">MITTE</td>
        <td height="100%" width="130" BGCOLOR="#004BB7">RECHTS</td>

      »»  </tr>

      </table>

      ACHTUNG! nicht getestet, sollte aber so aussehen wie du es möchtest.

      lg
      Ludwig

  3. Um weiteren Tips zur Lösung mit EINER Tabelle vorzugreifen:

    Die Site wird sehr viel Inhalt bekommen.
    Wenn ich alles in eine Tabelle packe muss der Besucher warten
    bis alles geladen ist, bevor er etwas zu sehen bekommt,
    da Tabellen in HTML erst angezeigt werden, wenn sie
    komplett geladen sind.

    Deshalb verteile ich den Inhalt auf 4 Tabellen, die dann
    nacheinander geladen und angezeigt werden.
    Auf diese Weise kann man die Navigation schon sehen und
    anklicken, bevor man den ganzen anderen "Mist" geladen hat.

    Trotzdem danke erstmal für die schnellen Antworten.
    Wäre aber sehr dankbar für weitere Tips!

    Gruss, Markus.

    1. Die Site wird sehr viel Inhalt bekommen.
      Wenn ich alles in eine Tabelle packe muss der Besucher warten
      bis alles geladen ist, bevor er etwas zu sehen bekommt,
      da Tabellen in HTML erst angezeigt werden, wenn sie
      komplett geladen sind.

      Deshalb verteile ich den Inhalt auf 4 Tabellen, die dann
      nacheinander geladen und angezeigt werden.

      Also wenn das so ist, dann würde ich mir als nächstes Gedanken über ein Frameset machen. Das müßte viele Eigenschaften aufweisen, die Du haben willst: Die Frames werden unabhängig voneinander layoutet und sogar parallel geladen und inkrementell dargestellt.

      Irgendwelche Einwände gegen Frames (oder Iframes)? Von Deinen Randbedingungen ist noch ziemlich wenig bekannt.

      1. Also wenn das so ist, dann würde ich mir als nächstes Gedanken über ein Frameset machen. Das müßte viele Eigenschaften aufweisen, die Du haben willst: Die Frames werden unabhängig voneinander layoutet und sogar parallel geladen und inkrementell dargestellt.

        Irgendwelche Einwände gegen Frames (oder Iframes)? Von Deinen Randbedingungen ist noch ziemlich wenig bekannt.

        Ich will Euch ja nicht die Laune verderben, aber ich habe mittlerweile
        schon Alpträume von Spalten und Abständen.

        Vorgabe lautet leider "Frames vermeiden, wo es nur geht"!

        Danke für den Tip.
        Markus

        PS: Echt cooles Forum, bin erstaunt über die rege Teilnahme.
        Ich muss hier öfter mal reinschauen.

        1. Vorgabe lautet leider "Frames vermeiden, wo es nur geht"!

          Naja, und wer definiert die exakte Bedeutung dieses butterweichen Statements? ;-)

          Was ist mit Browser-Kompatibilität? (Iframe sieht nicht nach Frame aus, geht aber nur im MSIE ...)

          Echt cooles Forum, bin erstaunt über die rege Teilnahme.
          Ich muss hier öfter mal reinschauen.

          Mach nur ... :-)

          1. Vorgabe lautet leider "Frames vermeiden, wo es nur geht"!

            Naja, und wer definiert die exakte Bedeutung dieses butterweichen Statements? ;-)

            Dieses Statement heisst "KEINE FRAMES", und wenn es auf einer bestimmten Seite
            nicht anders zu gehen scheint, wird 100 mal drueber nachgedacht, ob's doch anders geht.

            Was ist mit Browser-Kompatibilität? (Iframe sieht nicht nach Frame aus, geht aber nur im MSIE ...)

            Grundsätzlich alle Browser ab 3er Version (eigentlich). Aber auf jeden Fall alle 4er Browser.
            (auch Netscape)  :-))

            Gruss, Markus

            Echt cooles Forum, bin erstaunt über die rege Teilnahme.
            Ich muss hier öfter mal reinschauen.

            Mach nur ... :-)

  4. <!-- HIER DIE PROBLEMSTELLE -->
    <TABLE WIDTH="630" HEIGHT="25" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
      <TR>

    »»  <TD BGCOLOR="#00CC82">-- Hier ist beim IE ein unbeabsichtigter Abstand</TD>

    </TR>
    </TABLE>

    Wenn auch Style-Angaben enthalten sein duerfen:
    <TABLE STYLE="position:absolute; left:150px;" ...

    Gruss
       Manne

    1. Guter Tip:
      Funktioniert auch, leider aber ignoriert jetzt Netscape alle BGCOLOR's innerhalb der TD's.
      Das mit den Farben war natuerlich nur zur Verdeutlichung drin, aber ein paar BGCOLOR's
      werde ich mit Sicherheit haben.

      Muss ich dann eigentlich innerhalb der Tabellen ALLES mit CSS definieren?

      Nochmal Danke,
      Gruss, Markus.

      <!-- HIER DIE PROBLEMSTELLE -->
      <TABLE WIDTH="630" HEIGHT="25" CELLSPACING="0" CELLPADDING="0" BORDER="0" HSPACE="0">
        <TR>
      »»  <TD BGCOLOR="#00CC82">-- Hier ist beim IE ein unbeabsichtigter Abstand</TD>
        </TR>
      </TABLE>

      Wenn auch Style-Angaben enthalten sein duerfen:
      <TABLE STYLE="position:absolute; left:150px;" ...

      Gruss
         Manne

      1. Hi Markus
        Wenn du javascript benutzen darfst, dann kannst du einfach per Javascript abfragen ob der IE verwendet wird, und dann die entsprechenden Style Angaben machen. Dann hast du auch keine Probleme mit den bgcolors im Netscape.
        Ich hab mal die Tabellen mit dem IE3 Angeschaut. Da gibt es noch viel mehr durcheinander als du fuer den IE4+ beschrieben hast. Meiner Meinung nach haengen die meisten Probleme damit zusammen, dass du zwischen den verschiedenen Tabellen Leerzeilen geschrieben hast.(Returns!). Diese werden vom IE als Leerezeichen interpretiert. Also ein Return zwischen zwei Tabellen ist wie </table> <table...>. Und das kann dann genau wie ein Return oder ein Leerzeichen zwischen zwei Bildern zu unschoenen Zwischenraumen fuehren. Und diese Probleme treten meines Wissens nach auch nur mit dem IE auf.
        Ich hoffe das hilft ein wenig
        Holger

  5. Ok noch ein Versuch ! ;-)

    Warum nicht die Tabellen in eine DIV / LAYER - Kombination verpacken?

    mfg
    Martin