Zellengröße fest und variabel klappt nicht
Stefan
- html
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 :-(
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