img problem bei xhtml 1.1

knaup2

knaup2

Aktives Mitglied
Thread Starter
Dabei seit
11.06.2003
Beiträge
440
Reaktionspunkte
0
hallo,
eigentlich kann ich html ;) aber da komm ich nicht weiter. vielleicht kann mir jemand helfen.

ich probiere bissschen xhtml 1.1. und habe ein problem mit images denn egal was probiere. ob div oder table oder ... unter dem bild wird immer ein leerraum (etwa 6px) mit dargestellt. so dass zb die hintergrund farbe sichtbar wird.

PHP:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" lang=\"de\"?> \n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd">
<html>
<head>
	<title></title>
</head>


<body>
	<div style="margin: 20px; background-color: #cccccc"><img src="test.gif" alt="test" width="100" height="100" /></div>
	<table cellspacing="0" cellpadding="0" border="1">
	<tr>
		<td><img src="test.gif" alt="test" width="100" height="100" /></td>
	</tr>
	</table>
	
</body>
</html>


interessant ist: wenn ich einen fehler in der 1. zeile programmiere
PHP:
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\" lang=\"de\"? \n"; ?>
dann erscheint das problem nicht. aber das ist keine lösung oder? :/
 
Da die Browser kein XHTML können (außer Mozilla und da auch nur, wenn du die Seite mit einem XML Content Typ schickst), wird der Inhalt an den HTML Parser übergeben.

Und der kennt zwei Modi:

1) Quirks Modus, der die (Darstellungs-)Fehler der Vorgängerversionen der jeweiligen Browser imitiert.
2) Standards Modus, der versucht sich möglichst an die W3C Vorgaben zu halten.

Welcher Modus verwendet wird, ermittelt der Browser über den Doctype der Seite.

Dein Doctype oben schaltet zwar eigentlich in den Standards Modus, aber die XML Processing Instruction, die du per PHP ausgibst (warum schreibst du die eigentlich nicht direkt rein?), schaltet den Parser in den Quirks Modus.

Wenn du die PI änderst, so daß sie fehlerhaft ist, versucht der Parser das zu Reparieren und wirft sie raus. Dann bleibt nur der Doctype, und der schaltet den Browser in den Standards Modus.

Im übrigen ist es nicht erlaubt XHTML 1.1 als text/html auszuliefern. Lieferst du es aber als XML aus, kann nur Mozilla etwas damit anfangen. Vergiß XHTML. Zumindest für die nächsten 10 Jahre.
 
Nogger schrieb:
Im übrigen ist es nicht erlaubt XHTML 1.1 als text/html auszuliefern. Lieferst du es aber als XML aus, kann nur Mozilla etwas damit anfangen. Vergiß XHTML. Zumindest für die nächsten 10 Jahre.

Warum sollte man XHTML 1.1 nicht als "text/html" ausliefern?

Wie kommst du drauf dass nur die Mozilla Browser mit XHTML umgehen können? Das halte ich für ein Gerücht. Ich setze meine aktuellen Projekte nur in XHTML 1 und UTF-8 Kodierung um.
Wenn ich mich recht entsinne hatte der IE sogar früher einen XML-Parser integriert.
Es ist klar dass die Browser auf Mozillabasis eine standardkonformere Renderengine haben, speziell wenn es um CSS 2 geht, hat man mit dem IE erhebliche Probleme. Aber mir wäre noch nicht aufgefallen dass der IE generell nicht mit XHTML umgehen kann.

Mich würde interessieren wie zu dieser Überzeugung gelangst?

lg
Reinhard
 
broxx schrieb:
Warum sollte man XHTML 1.1 nicht als "text/html" ausliefern?

Weil es so im Standard steht. Siehe http://www.w3.org/TR/xhtml-media-types/xhtml-media-types.html#summary

Wie kommst du drauf dass nur die Mozilla Browser mit XHTML umgehen können? Das halte ich für ein Gerücht. Ich setze meine aktuellen Projekte nur in XHTML 1 und UTF-8 Kodierung um.

Ich muß mich korrigieren, Opera 7.54 scheint mir XHTML auch keine Probleme zu haben.

Lieferst du deine Seiten auch als XML aus? Wenn nicht, gilt:

XHTML documents served as 'text/html' will not be processed as XML

Das heißt, du schreibst da zwar xhtml rein, verarbeitet werden sie aber als Tagsoup, also HTML. Womit man eigentlich auch direkt bei HTML bleiben kann.

Wenn ich mich recht entsinne hatte der IE sogar früher einen XML-Parser integriert.

Den haben sie immernoch. Hilft aber nicht.

Aber mir wäre noch nicht aufgefallen dass der IE generell nicht mit XHTML umgehen kann.

Mit "generell" meinte ich "nicht in einer nutzbaren Art und Weise". Es ist einfach unbrauchbar. Kaputt. Probiere es aus. Liefere einfach ein XHTML Dokument als "application/xhtml+xml" aus.

Oder schau dir http://mozillacss.mozdev.org/xhtml10/ mit dem IE an (falls sie da nicht mit dem Accept Header tricksen und dem IE text/html schicken).

Auf http://schneegans.de/tips/apache-xhtml/ wird es schön beschrieben. Mit Screenshots.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben Unten