Dateiendung "xhtml" wird anders gerendet als "html" im FF

Status
Nicht offen für weitere Antworten.

mille

Erfahrenes Mitglied
Moin.

Kurios, kurios. Ich habe eine index.xhtml datei mit folgendem inhalt
HTML:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kopf</title>
<link href="__inc/main.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="content">test</div>
<div id="head"><img src="__img/head.jpg" height="213" width="696" alt="Banner" /></div>
<div id="topline">test</div>
<div id="head_left">est</div>
</body>
</html>

und einen kleinen Ausschnitt css gibts auch dazu.

CSS:
body {
    background: #333333;
    background-image: url(../__img/bg.jpg);
    background-repeat: repeat;
    height: 100%;
    width: 100%;
    margin: 0px;
    padding: 0px;
}

So. wenn die index.xhtml mit dem Firefox geöffnet wird, sieht das ganze so aus, wie es dieser Screenshot darstellt: http://img251.imageshack.us/my.php?image=untitled1xx0.jpg

Wenn ich die index.xhtml nun umbenenne in "index.html" und sonst alles genauso belasse, wird der Hintergrund im Firefox komplett dargestellt. Das heißt, die Nadelstreifen verlaufen über den kompletten Body, so wie es auch sein muss.

Woran liegt das?
 
Hi,

hast du es anstelle von content=text/html mal mit content=text/xhtml bzw. content=text/xml versucht :confused:
 
Könnte mir vorstellen, dass die Restriktionen enger gesteckt sind, sodass sich der Hintergrund nicht auf 100% in der Vertikalen strecken lässt. :confused:
 
Ja dachte ich mir auch, aber die Dateiendung ist eigentlich vollkommen egal.
Ich kann ja mittels mod_rewrite auch einen zugriff auf "foo.bar" machen und die intern auf index.html umcshreiben, dann würde es wieder gehen.

Ferner wird ja die Dokumentenspezifikation über den DOCTYPE und die DTD definiert, insofern dürfte das nichts mit xhtml 1.0 strict zu tun haben. :-(
 
Das mag ja alles so sein, aber mit der Dateiendung ".xhtml" wird das Dokument vom XML-, und nicht vom HTML-Parser durchlaufen - so gesehen ist die Dateiendung nicht vollkommen egal.
 
Das wird dich jetzt sicherlich nicht befriedigen, aber dann belass es bei der ".html"-Dateieindung.
 
*lacht*
Du kennst mich gut ;).
Ja ich belasse es auch (vorerst) bei der html Endung.
Dennoch wärs cool, wenn jemand ne Lösung hätte und sie hier posten kann. ".html" is ja nur ne notlösung :D. bei genügend langerweile forste ihc ma die xhtml spezifikation durch
 
Ferner wird ja die Dokumentenspezifikation über den DOCTYPE und die DTD definiert, insofern dürfte das nichts mit xhtml 1.0 strict zu tun haben.
Wie der Browser ein Dokument verarbeitet, hängt von dem Inhaltstyp ab. Dieses wird im HTTP im Header-Feld „Content-Type“ zusammen mit der Zeichenkodierung beziehungsweise dem Zeichensatz angegeben. Fehlt diese, wird auf den im Browser eingestellte Standard-Inhaltstyp zurückgegriffen.
Lokal auf dem eigenen Rechner sieht es etwas anders aus. Dort dient meist die Dateiendung als Indikator für die Zuordnung zum Inhaltstyp beziehungsweise des zu verwendenden Programms.

Zur Lösung des Problems: Das DOM für HTML- und XHTML-Dokumente ist unterschiedlich. Im XHTML-DOM ist das html-Element anders als im HTML-DOM das jenige Element, dass die gesamte Seite füllt. Deswegen muss im XHTML-Dokument der Hintergrund entweder auf das html- statt das body-Element angewendet werden oder dem html-Element ebenfalls die Höhe 100% zuweisen.

Mein Ratschlag: bleibe bei HTML 4.01 Strict. Das unterscheidet sich zu XHTML 1.0 Strict inhaltlich nicht, bewahrt dich aber vor den Problemen und Stolpersteinen, die es mit XHTML derzeit noch gibt.
 
Status
Nicht offen für weitere Antworten.

Neue Beiträge

Zurück