Stefan: Zellengröße fest und variabel klappt nicht

Hallo,

ich habe ein Problem mit der Darstell einer Tabelle bei den Höhenangaben einer Zelle.

Hier der Quellcode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Meine Seite</title>
<link href="css/template_css.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.table { width:100%; height:100%; }
</style>
<style type="text/css">
.td { border:0px solid #000; vertical-align:top; }
</style>
</head>
<BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0>
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE"))
{
?>
<table border="0" cellpadding="0" cellspacing="0" class="table" style="table-layout:fixed">
  <tr style="height:73px"> <!-- Festlegen der SpaltenHÖHE -->
    <td class="td" style="width:199px" background="images/6.gif">1</td>
    <td class="td" style="width:600px" background="images/5.gif">2</td>
    <td class="td" rowspan="4" background="images/4.gif" style="background-repeat: repeat-x">3</td>
  </tr>
  <tr style="height:12px"> <!-- Festlegen der SpaltenHÖHE -->
    <td class="td" style="width:199px" background="images/7.gif">4</td>
    <td class="td" style="width:600px">5</td>
  </tr>
  <tr>
    <td class="td" style="width:199px; height:309;" background="images/2.gif">
      <?php mosLoadModules ( 'left' ); ?>
      6 </td>
    <td class="td" rowspan="2" style="width:600px; height:100%"><span class="pathway"> <br>
      <?php include ("mainbody.php"); ?>
      7 </span> <span class="pathway"> </span> </td>
  </tr>
  <tr style="width:199px; height:1500">
    <td class="td" background="images/3.gif" style="width:199px; height:100%; background-repeat: repeat-y">8</td>
  </tr>
</table>
<?php }
else
{
?>
<table>
 .
 .
 .
</table>
<?php };?>
</body>
</html>

Die ersten Zeilen (1 bis 13) überspringe ich mal.
Zeile 14 bis 17 dient zur Identifizierung des Browsers. Bei Firefox etc. werden die Zeilen 44 bis 48 ausgegeben (hier funktioniert alles.
Probleme macht die Darstellung der Tabelle für den InternetExplorer Zeile 18 bis 39. Um es einfacher zu machen habe ich die Zellen nummeriert. Die Zellen 1 bis 5 bereiten keine Probleme.
Zelle 6,7 und 8 stellen mein Problem dar.

Die Zelle 6 (Navigation) hat die feste Höhe von 309px. In Zelle 7 wird der Text reingeladen, der je nach Inhalt eine länge von bis zu 1000 px und mehr haben kann. Zelle 8 enthält eine Grafik die links am Rand nach unten weg gekachelt werden soll und sich somit dem Browserfenster bzw der Auflösung anpasst.

PROBLEM:
Ist der Text in Zelle 7 länger also die feste Vorgabe von 309px in Zelle 6, wird nicht die Zelle 8 entsprechend verlängert, sondern er kachelt mit die Zelle 6. In dem Fall ignoriert er die Zelle 8.

Weiß jemand einen Rat???

Leider hab ich die Seite nur offline und deswegen auch keinen Link dazu. Werde versuchen das schnell nach zu holen. Hoffe ich hab mich nicht zu verdreht ausgedrückt    :-(

  1. Guten Morgen Stefan,

    <tr>
    <td class="td" style="width:199px; height:309;"
    background="images/2.gif">
    <?php mosLoadModules ( 'left' ); ?> 6 </td>
    <td class="td" rowspan="2" style="width:600px;
    height:100%"><span class="pathway"> <br>
    <?php include ("mainbody.php"); ?> 7 </span></td>
    </tr>

    Die Zelle 6 (Navigation) hat die feste Höhe von 309px.
    In Zelle 7 wird der Text reingeladen, der je nach Inhalt eine
    länge von bis zu 1000 px und mehr haben kann.

    Ist der Text in Zelle 7 länger also die feste Vorgabe von 309px
    in Zelle 6, wird nicht die Zelle 8 entsprechend verlängert, sondern
    er kachelt mit die Zelle 6. In dem Fall ignoriert er die Zelle 8.

    Es ist moeglich einer Zelle eine Feste und Variabele Breite zu
    zuordnen. Die Zellen innerhalb einer Spalte muessen jedoch die
    selbe Hoehe haben.

    <tr>
    |-------|----------------------|
    | Links |                      |
    | 6     | Hauptseite           |
    |       | 7                    |
    |-------|                      |
            |                      |
            |                      |
     _______|----------------------|
    </tr>

    Firefox und Mozilla, auch Opera, scheinen hier ein wenig variabeler zu
    sein als M$.
    Du koenntest dieses Problem umgehen, indem du dein Menue in
    einem <div> Container mit fester hoehe laedst, und diesem die
    Eigenschaften der Linkenspalte gibst.

    Loesung 2, du verabschiedest dich von einem Tabellelayout, und
    machst es gleich ganz in Verschiedenen <div> Containern.

    <div>      <div>
    |-------|  |----------------------|
    | Links |  |                      |
    | 6     |  | Hauptseite           |
    |       |  | 7                    |
    |-------|  |                      |
    </div>     |                      |
               |                      |
               |----------------------|
               </div>

    Das Funktioniert dann auch in Verschiedenen Browsern, ohne fuer
    jeden eine neue Seite zu schreiben.

    gruesse aus'm ruhrpott
      jens mueller

    --
    I am a scout. How can I use Perl in my day-to-day scout business? For example, helping little old ladies across the street. - See the perllol man page.