Warum sind <div></div> und <div /> verschieden?
NaN
- html
Hallo!
Warum werden beiden <div> Versionen verschieden dargestellt? Beides sind inhaltsleere divs.
http://tra.zoellich.de/tt.html
<!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>
<title>tt</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
div {
width:121px;
height:121px;
margin-left:1em;
}
</style>
</head>
<body style="font-size:22px">
<div style="background-color:#BD5E3B;" />
<div style="background-color:#DE6D46;" />
<div style="background-color:#FA8C5B;" />
<div style="background-color:#FF9F72;" />
<div style="background-color:#BD5E3B;"></div>
<div style="background-color:#DE6D46;"></div>
<div style="background-color:#FA8C5B;"></div>
<div style="background-color:#FF9F72;"></div>
</body>
</html>
Gruß
NaN
Hi,
Warum werden beiden <div> Versionen verschieden dargestellt? Beides sind inhaltsleere divs.
Vermutlich weil wegen
Content-type: text/html; charset=UTF-8
das ganze als tag soup verarbeitet wird und damit <div /> nur als öffnendes Tag verarbeitet wird - die 4 schließenden tags werden dann vor dem </body> ergänzt.
Damit liegen die div ineinander, nicht nacheinander.
Ein kurzer Blick in den DOM-Inspektor bestätigt die Vermutung.
cu,
Andreas
Hallo!
Warum werden beiden <div> Versionen verschieden dargestellt? Beides sind inhaltsleere divs.
Vermutlich weil wegen
Content-type: text/html; charset=UTF-8
das ganze als tag soup verarbeitet wird und damit <div /> nur als öffnendes Tag verarbeitet wird - die 4 schließenden tags werden dann vor dem </body> ergänzt.
Damit liegen die div ineinander, nicht nacheinander.Ein kurzer Blick in den DOM-Inspektor bestätigt die Vermutung.
Ich habe mir den DOM-Baum im konqueror angeschaut: in der Tat, schrecklich.
Aber das Warum verstehe ich überhaupt nicht: der content-type ist doch ziemlich normal?
Gruß
NaN
Hallo Nan,
Aber das Warum verstehe ich überhaupt nicht: der content-type ist doch ziemlich normal?
Eben. Der Content-Type ist text/html. Willst du eine Verarbeitung als XML nimm application/xhtml+xml, application/xml oder text/xml. Damit kommt der IE aber nicht zurecht. Vermutlich ist es am besten, du lässt das Dokument als HTML verarbeiten und verzichtest auf solche abwärtsinkompatiblen Kurzformen.
Jonathan
Hallo!
Eben. Der Content-Type ist text/html. Willst du eine Verarbeitung als XML nimm application/xhtml+xml, application/xml oder text/xml. Damit kommt der IE aber nicht zurecht. Vermutlich ist es am besten, du lässt das Dokument als HTML verarbeiten und verzichtest auf solche abwärtsinkompatiblen Kurzformen.
So sieht es wohl aus, ist mir völlig neu. Ich habe dazu noch die folgende Seite gefunden: http://www.hixie.ch/advocacy/xhtml
Danke
NaN
Hello out there!
Ich habe dazu noch die folgende Seite gefunden: http://www.hixie.ch/advocacy/xhtml
Schon wieder dieser „sehr bekannte Artikel“, der „jedoch hauptsächlich dadurch besticht, dass er vor allem einseitig und irreführend ist.“ [Jendryschik]
Siehe https://forum.selfhtml.org/?t=160280&m=1042457 ff.
See ya up the road,
Gunnar
Hallo,
Schon wieder dieser „sehr bekannte Artikel“, der „jedoch hauptsächlich dadurch besticht, dass er vor allem einseitig und irreführend ist.“ [Jendryschik]
Jendryschik sagt auch keines der Argumente sei praxisrelevant. Aber ich will nicht wissen wie viele Leute rumheulen werden, wenn Ihre Webseiten als XHTML nicht funktionieren.
Gut, das ist zum Teil das Problem des Autors, aber Dinge wie DOM-1-Methoden, die in XHTML nicht verwendet werden können sind ein klares XHTML-Problem.
Gruß;
Hello out there!
Aber ich will nicht wissen wie viele Leute rumheulen werden, wenn Ihre Webseiten als XHTML nicht funktionieren. [...] Dinge wie DOM-1-Methoden, die in XHTML nicht verwendet werden können sind ein klares XHTML-Problem.
Welche Dinge genau, die in einem HTML-4.01-Dokument funktionieren, funktionieren in einem als 'text/html' ausgelieferten XHTML-1.0-Dokument nicht?
See ya up the road,
Gunnar
Hallo,
Welche Dinge genau, die in einem HTML-4.01-Dokument funktionieren, funktionieren in einem als 'text/html' ausgelieferten XHTML-1.0-Dokument nicht?
So etwas gibt es nicht, was aber daran liegt, dass ein als text/html ausgeliefertes „XHTML-1.0-Dokument“ ein HTML-Dokument ist und kein XHTML-Dokument.
Gruß;
Hallo NaN,
Warum werden beiden <div> Versionen verschieden dargestellt? Beides sind inhaltsleere divs.
Deine Seite wird mit dem content-type text/html versendet, also als ganz normales HTML verarbeitet. Und im Ganz normalen HTML gibt es eben keine Kurzformen wie <div />, sodass der Quelltext effektiv wie folgender Quelltext gehandhabt wird:
<body style="font-size:22px">
<div style="background-color:#BD5E3B;">
<div style="background-color:#DE6D46;">
<div style="background-color:#FA8C5B;">
<div style="background-color:#FF9F72;">
<div style="background-color:#BD5E3B;"></div>
<div style="background-color:#DE6D46;"></div>
<div style="background-color:#FA8C5B;"></div>
<div style="background-color:#FF9F72;"></div>
</div></div></div></div><!-- werden automatisch als Fehlerkorrektur ergänzt -->
</body>
Jonathan
Hallo Jonathan,
Warum werden beiden <div> Versionen verschieden dargestellt? Beides sind inhaltsleere divs.
Deine Seite wird mit dem content-type text/html versendet, also als ganz normales HTML verarbeitet. Und im Ganz normalen HTML gibt es eben keine Kurzformen wie <div />,
Gibt es denn einen passenden content-type? Self benutzt auf http://de.selfhtml.org/html/xhtml/anzeige/beispiel.xhtml auch text/html, so daß das DOM dem <hr /> den Schrägstrich nimmt.
Gruß
NaN
Moin!
Gibt es denn einen passenden content-type? Self benutzt auf http://de.selfhtml.org/html/xhtml/anzeige/beispiel.xhtml auch text/html, so daß das DOM dem <hr /> den Schrägstrich nimmt.
Das sollte es eigentlich nicht, denn:
$ curl -I http://de.selfhtml.org/html/xhtml/anzeige/beispiel.xhtml
Content-Type: application/xhtml+xml
Du meinst vermutlich die Meta-Angabe
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
Wenn der Webbrowser die XHTML-Datei bereits als solche erhalten hat, ist ihm diese Angabe gleichgültig, da der Anfang der Datei schon als XHTML durch den Parser wandert, denn der HTTP-Header ist ihm wichtiger.
Viele Grüße,
Robert
Hallo Robert,
Stimmt, die Selfhtml-Seite wird mit dem richtigen xml-Content-Type verschickt. Es ist ja aber auch so, dass ein <hr /> im normalen HTML auch keinen Schließ-Tag braucht, deswegen wäre es auch völlig unerheblich, wenn man die Seite als HTML parsen würde. Der Schrägstrich wird dann einfach ignoriert.
Jonathan