Doctype-Deklaration: Segen oder Fluch?!
corner
- html
Hallo zusammen,
ich bemühe mich schon seit Stunden, standardkonform eine Tabelle zur Seitendarstellung über den gesamten Anzeigebereich des Browsers zu erstrecken (auch wenn einige sagen, Tabellen seinen kein geeignetes Layout-Mittel; mir ist leider nichts besseres eingefallen, um eine farbig hinterlegte Navigation bis zum unteren Browserrand laufen zu lassen, ohne dass der Inhalt wieder über den Anzeigebereich ausufert. Wenn jemand eine Idee hat, gern!).
Sobald ich eine Doctype-Deklaration angebe
(<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">),
fällt die Darstellung meiner Seite in verschiedenen Browsern unterschiedlich aus:
Zuerst war es ein Akt, die Tabelle überhaupt über die gesamte Seitenhöhe zu erstrecken (hat mittlerweile geklappt).
Jetzt ist aber das Problem, dass der IE die <td>-Angaben width="*" und height="*" nicht umsetzt, bei Opera dasselbe, allerdings nur bezüglich width. D.h. die obere und linke feste Breite wird nach Lust und Laune verschoben. Nur Firefox scheint die Angaben zu kennen und stellt die Seite so dar, wie ich mir das vorstelle.
Ich hatte gedacht, die Doctype-Deklaration wäre dazu da, dass Webseiten in allen Browsern einheitlich dargestellt werden. Dies geschieht bei mir aber nur, wenn ich die Deklaration weglasse.
Was hat die Deklaration überhaupt für einen Sinn?
Hier beispielhaft der Code meiner Seite:
<html style="width:100%; height:100%; margin:0px">
<body style="width:100%; height:100%; margin:0px">
<table style="width:100%; height:100%" ...>
<tr><td colspan=2 style="height:85px">Obere Leiste</td></tr>
<tr><td width="130" height="*">Linke Leiste</td>
<td width="*">Inhalt</td></tr></table>
</body></html>
Vielen Dank für alle Antworten und viele Grüße
corner
Ich hatte gedacht, die Doctype-Deklaration wäre dazu da, dass Webseiten in allen Browsern einheitlich dargestellt werden.
"Die" Doctype-Deklaration gibt es nicht. Es gibt einen ganzen Haufen (naturgemäß, es gibt ja auch verschiedene HTML-Fassungen), einige schalten in den standardkonformen Modus, andere in den Ich-mach-was-ich-will-Modus. Der standardkonforme Modus macht das, was du erwartest, nämlich dass sich der Browser an die Vorgaben der Standards hält und du dich somit auch an diese Vorgaben halten kannst, ohne dir den Kopf zu zerbrechen.
Deine Angabe
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
gehört nun allerdings gerade nicht dazu. Eine Liste findest du unter http://hsivonen.iki.fi/doctype/.
Davon unabhängig, du hast es schon angesprochen, ist das Tabellenlayout allerdings nicht im Sinne des Erfinders bzw. der Standards, insofern würde ich mir vom standardkonformen Modus nicht allzu viel versprechen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
gehört nun allerdings gerade nicht dazu.
Korrigiere mich, diese Zeile schaltet in ein Zwischending, das sich ausgerechnet auf Tabellen auswirkt.
Hi,
Jetzt ist aber das Problem, dass der IE die <td>-Angaben width="*" und height="*" nicht umsetzt,
Da HTML weder width="*" noch height="*" für Tabellenzellen erlaubt (in beiden Fällen ist der Typ des Attributs length, welcher als "Length: The value (%Length; in the DTD) may be either a %Pixel; or a percentage of the available horizontal or vertical space. Thus, the value "50%" means half of the available space." definiert ist), ist Deine Erwartung, daß diese nicht erlaubte Angabe irgendwie umgesetzt werden müßte, falsch.
Ich hatte gedacht, die Doctype-Deklaration wäre dazu da, dass Webseiten in allen Browsern einheitlich dargestellt werden.
Was hat die Deklaration überhaupt für einen Sinn?
Die Doctype-Deklaration dient dazu, zu deklarieren, um welchen Typ Dokument es sich handelt.
cu,
Andreas