Hallo,
ich bin gerade dabei eine Internetseite zu erstellen. Die Seite besteht aus einer großen Tabelle die den Bildschirm zu 100% füllt. Oben der Titel, links Navigation und der Rest der eigentliche Inhalt. Ich möchte die obere Tabellenzelle nun fixieren, das sie immer eine bestimmte Höhe hält (in Pixel, da ein Bild drin ist). In Firefox klappt auch alles wunderbar, der w3c-validator sagt valid HTML 4.01 Transitional, aber im IE funktioniert es nicht. Ehal ob ich die Höhe mit height="80" einstelle oder style="height: 80px;" im TD-Element, der IE meint er könnte die Zelle, wenn in der darunter nicht genügend viel Inhalt ist, sie stretchen.
Hier der (verkürzte) Quelltext:
CODE <body>
<table border="0" cellspacing="0" cellpadding="0" width="100%" style="height: 100%;">
<tr style="height: 80px;">
<td colspan="2" height="80" style="height: 80px;"> <!-- Überschrift besteht aus zwei Bildern -->
<table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#c8a96e" style="height: 80px;">
<tr>
<td align="left"><img src="./images/bild1.png" alt="Überschrift" /></td>
<td align="right"><img src="./images/bild2.png" alt="" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top" class="navi"> [Navigation] </td>
<td valign="top"> <!-- Der Hauptbereich besteht nochmal aus einer Tabelle (Begründung siehe Post) -->
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="height: 100%;">
<tr style="height: 1em;">
<td colspan="3"></td> <!-- Rand oben -->
</tr>
<tr>
<td style="width: 1em;"></td> <!-- Rand links -->
<td width="*"> [Inhalt] </td> <!-- Der Hauptbereich für den Inhalt -->
<td style="width: 1em"></td> <!-- Rand rechts -->
</tr>
<tr style="height: 1.5em;">
<td colspan="3" valign="middle"> [Copyright] </td> <!-- Fußleiste -->
</tr>
</table>
</td>
</tr>
</table>
</body>
Begründung für zweite Tabelle im Hauptbereich: Ursprünglich hatte ich hier nur ein <div>-Element was mit margin/padding den Abstand regelte. In Firefox wieder wunderbar, jedoch versteht der IE anscheinend nicht was 100% sind, und alle Elemente innerhalb des <div>-Elements die width="100%" hatten, wurden über den Rand hinaus gestreckt (der IE scheint 100% ohne padding/margin zu sehen).
Mit der Tabelle habe ich das Problem gelöst.
Nochmal das Problem: Die obere Tabellenzelle, die von mir fest auf 80px gesetzt wird vom IE manchmal darüber hinaus gestreckt. Ich habe auch probiert, wie ich es bereits gelesen habe, das <td>-Element des Hauptbereichs mit width="100%" zu erweitern, das Problem ist dann weg, jedoch ist die ganze Tabelle dann zu groß (genau 80 Pixel mehr als verfügbar), und ich habe immer einen Scrollbalken. Die Tabellenzelle soll immer 100% - 80 Pixel groß sein.
Wie kann ich das korrigieren? Ist es ein Fehler meinerseits oder einer des IE?
Ich würde gerne eine vernünftige Lösung, die w3c-konform und JavaScript-frei ist.
ich bin gerade dabei eine Internetseite zu erstellen. Die Seite besteht aus einer großen Tabelle die den Bildschirm zu 100% füllt. Oben der Titel, links Navigation und der Rest der eigentliche Inhalt. Ich möchte die obere Tabellenzelle nun fixieren, das sie immer eine bestimmte Höhe hält (in Pixel, da ein Bild drin ist). In Firefox klappt auch alles wunderbar, der w3c-validator sagt valid HTML 4.01 Transitional, aber im IE funktioniert es nicht. Ehal ob ich die Höhe mit height="80" einstelle oder style="height: 80px;" im TD-Element, der IE meint er könnte die Zelle, wenn in der darunter nicht genügend viel Inhalt ist, sie stretchen.
Hier der (verkürzte) Quelltext:
CODE <body>
<table border="0" cellspacing="0" cellpadding="0" width="100%" style="height: 100%;">
<tr style="height: 80px;">
<td colspan="2" height="80" style="height: 80px;"> <!-- Überschrift besteht aus zwei Bildern -->
<table border="0" cellspacing="0" cellpadding="0" width="100%" bgcolor="#c8a96e" style="height: 80px;">
<tr>
<td align="left"><img src="./images/bild1.png" alt="Überschrift" /></td>
<td align="right"><img src="./images/bild2.png" alt="" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td valign="top" class="navi"> [Navigation] </td>
<td valign="top"> <!-- Der Hauptbereich besteht nochmal aus einer Tabelle (Begründung siehe Post) -->
<table width="100%" border="0" cellpadding="0" cellspacing="0" style="height: 100%;">
<tr style="height: 1em;">
<td colspan="3"></td> <!-- Rand oben -->
</tr>
<tr>
<td style="width: 1em;"></td> <!-- Rand links -->
<td width="*"> [Inhalt] </td> <!-- Der Hauptbereich für den Inhalt -->
<td style="width: 1em"></td> <!-- Rand rechts -->
</tr>
<tr style="height: 1.5em;">
<td colspan="3" valign="middle"> [Copyright] </td> <!-- Fußleiste -->
</tr>
</table>
</td>
</tr>
</table>
</body>
Begründung für zweite Tabelle im Hauptbereich: Ursprünglich hatte ich hier nur ein <div>-Element was mit margin/padding den Abstand regelte. In Firefox wieder wunderbar, jedoch versteht der IE anscheinend nicht was 100% sind, und alle Elemente innerhalb des <div>-Elements die width="100%" hatten, wurden über den Rand hinaus gestreckt (der IE scheint 100% ohne padding/margin zu sehen).
Mit der Tabelle habe ich das Problem gelöst.
Nochmal das Problem: Die obere Tabellenzelle, die von mir fest auf 80px gesetzt wird vom IE manchmal darüber hinaus gestreckt. Ich habe auch probiert, wie ich es bereits gelesen habe, das <td>-Element des Hauptbereichs mit width="100%" zu erweitern, das Problem ist dann weg, jedoch ist die ganze Tabelle dann zu groß (genau 80 Pixel mehr als verfügbar), und ich habe immer einen Scrollbalken. Die Tabellenzelle soll immer 100% - 80 Pixel groß sein.
Wie kann ich das korrigieren? Ist es ein Fehler meinerseits oder einer des IE?
Ich würde gerne eine vernünftige Lösung, die w3c-konform und JavaScript-frei ist.