2 Stimmen

Ist etwas falsch daran, Teile einer Webseite in XHTML mit einem HTML-Doctype zu schreiben?

Ich habe erst vor kurzem angefangen, HTML/CSS zu lernen, und ich habe versucht, mir solide Web-Programmierpraktiken beizubringen. Ich bin mit XML vertraut, also war die Programmierung von Webseiten in XHTML intuitiv genug, und es schien einfach eine gute Sache zu sein. Allerdings habe ich Artikel gelesen wie diese und jetzt bin ich zwiegespalten.

Meine Bedenken bei der Kodierung in HTML und XHTML rühren aus folgenden Gründen:

  1. img-Tags müssen in HTML nicht geschlossen werden, und das leuchtet mir ein. Aber in XHTML erfordern img-Tags ein close-Tag, was irgendwie seltsam erscheint. Ich finde es einfach seltsam, ein Paar von open- und close-Tags zu haben, zwischen denen nichts liegt.
  2. p-Tags (wie in Absatz) müssen in HTML nicht geschlossen werden, und das finde ich merkwürdig. Es ist sinnvoll, einen Absatz zwischen offenen und geschlossenen Tags abzutrennen, wie man es in XHTML tun würde.

Dies sind die einzigen einfachen Beispiele, die mir im Moment einfallen, aber ich hoffe, dass sie zumindest zeigen, wie gespalten ich zwischen HTML und XHTML bin. Hier ist also meine eigentliche Frage: Ist es in Ordnung, XHTML-Code einzubauen (wenn ich das Gefühl habe, dass es etwas angemessen verdeutlicht), wenn ich eine Webseite programmiere, die in HTML (mit einer HTML-DTD) sein sollte? Ich bin mir sicher, dass die Website genauso aussehen würde, aber wenn sich die Leute meinen Quellcode ansehen würden, würden sie dann denken, dass ich ein furchtbar unprofessioneller Programmierer bin?

Außerdem habe ich irgendwie blind durch Tutorials und Leitfäden über Google auf solide Web-Programmierung Praktiken suchen und ich fragte mich, ob Sie Leute hatten alle Ratschläge / Ressourcen mit mir zu teilen. Ich möchte wirklich sicherstellen, dass ich lerne, wie man das richtig macht. Ich würde es wirklich zu schätzen wissen.

Vielen Dank fürs Lesen!

Edit: Wow, so schnelle Antworten; ihr seid fantastisch! Ich verstehe also, dass Webbrowser ziemlich nachsichtig sein werden, wenn es um diese Art von Dingen geht. Mein Problem ist dann eine Frage der Eitelkeit und wie andere Fachleute über das Schreiben einer Art Mischung aus XHTML und HTML denken. Ist streng konformer Code der richtige Weg? Ich möchte wirklich nicht wie ein Idiot aussehen, haha.

8voto

Bayard Randel Punkte 9592

HTML 5 ermöglicht die Verwendung der XHTML-Syntax.

Sie können jetzt einen HTML 5-Doctype verwenden, der alle Browser in den Standardmodus versetzt. Beachten Sie jedoch, dass die neuen Funktionen von HTML 5 nur von einigen Browsern unterstützt werden.

Von der Arbeitsgruppe Web-Hypertext-Anwendungstechnologie :

Sollte ich leere Elemente mit /> oder > schließen?

Void-Elemente in HTML (z.B. die br-, img- und input-Elemente) benötigen keinen abschließenden Schrägstrich. z.B. Anstatt zu schreiben <br /> brauchen Sie nur zu schreiben <br> . Dies ist dasselbe wie in HTML 4.01. Aufgrund der weit verbreiteten Versuche, XHTML 1.0 zu verwenden, gibt es jedoch eine beträchtliche Anzahl von Seiten, die den nachgestellten Schrägstrich verwenden. Aus diesem Grund wurde die Syntax des abschließenden Schrägstrichs für ungültige Elemente in HTML zugelassen, um die Migration von XHTML 1.0 zu HTML5 zu erleichtern.

Der wunderbar einfache HTML 5-Doctype sieht folgendermaßen aus:

<!DOCTYPE html>

Also ja, Sie können standardkonformes HTML mit selbstschließenden Tags schreiben und es wird gegen eine HTML 5-Validierer . Die Industrie hat sich weitgehend dafür entschieden, HTML5 anstelle von XHTML2 zu verwenden, und daher würde ich die Verwendung von XHTML für neue Projekte nicht empfehlen.


Edit: Nur zur Klarstellung: Es ist sicher, den HTML 5-Doctype jetzt zu verwenden, und es ist auch sicher anzunehmen, dass HTML 5 angesichts der Unterstützung durch die Industrie weitgehend von XHTML 2 übernommen werden wird. Sie können zwar jetzt schon HTML5-Dokumente erstellen, aber viele der Funktionen von HTML5, wie z. B. <canvas> (insbesondere mangelnde Unterstützung von MS, da es mit Silverlight konkurriert) haben keine browserübergreifende Unterstützung und sind Änderungen unterworfen.

4voto

Quentin Punkte 850700

img-Tags müssen in HTML nicht geschlossen werden, und das macht für mich Sinn.

Non Tag muss geschlossen werden. Alle Elemente geschlossen werden müssen.

Die meisten Elemente bestehen aus einem Start-Tag, etwas Inhalt und einem End-Tag.

Da ein Bildelement keinen Inhalt haben kann, ist der End-Tag nicht erforderlich. In HTML sind bei Elementen, die keinen Inhalt haben ("EMPTY-Elemente"), die End-Tags verboten.

Aber in XHTML erfordern img-Tags ein close-Tag, was etwas seltsam anmutet.

XHTML ist eine XML-Anwendung und keine SGML-Anwendung, und XML verfügt nicht über alle Funktionen von SGML - einschließlich der Möglichkeit, ein End-Tag als verboten zu erklären.

Ich finde es nur seltsam, ein Paar von offenen und geschlossenen Tags zu haben, zwischen denen nichts liegt.

XML führt eine neue Art von Tag ein - ein selbstschließendes Tag ( <foo /> ), das als kombinierte Start- und Endmarkierung fungiert.

Wenn Sie HTML-kompatibles XHTML schreiben (was Sie tun sollten, wenn Sie sich für XHTML entscheiden und Browser unterstützen wollen, die diese Sprache nicht unterstützen - wie z. B. der Internet Explorer), dann müssen Sie devrait diese Syntax verwenden . (Ich selbst ziehe es vor, bei HTML zu bleiben)

p-Tags (wie in Absatz) müssen in HTML nicht geschlossen werden, und das finde ich merkwürdig.

Viele Elemente in HTML haben optional Tags beenden. Dadurch kann das Ende-Tag weggelassen werden, wenn es impliziert werden kann.

Zum Beispiel:

<p>Hello, world
<p>A second paragraph

Da ein p-Element kein anderes p-Element enthalten kann, können Sie mit 100-prozentiger Sicherheit davon ausgehen, dass der Beginn eines neuen Absatzes den vorherigen abschließt.

Das heißt, sie sind optional , nicht verboten. Sie können HTML 4.01 mit expliziten End-Tags für jedes Element schreiben, das nicht von Haus aus leer ist.

Ist es in Ordnung, XHTML-Code einzufügen? (wenn ich das Gefühl habe, dass es etwas angemessen etwas zu verdeutlichen), wenn ich eine eine Webseite programmiere, die in HTML sein sollte sein sollte (mit einer HTML-DTD)? Ich bin sicher, dass die Website gleich aussehen würde, aber wenn Leute meinen Quelltext sehen würden, würden sie denken, ich sei ein furchtbar unprofessioneller Programmierer?

Das würde unprofessionell aussehen.

Allerdings gibt es nur drei Fälle, in denen die XHTML-Syntax nicht der HTML-Syntax entspricht:

Leere Elemente - wie zum Beispiel <img> y <br> müssen in XHTML explizit geschlossen werden aber Sie sagten, Sie mögen diese Syntax nicht.

Skripte und Stile - Sie müssen Zeichenreferenzen oder CDATA-Markierungen verwenden, wenn Sie bestimmte Zeichen in Ihrem eingebetteten JS und CSS in XHTML verwenden, aber diese Elemente sind in der DTD für HTML als CDATA markiert, so dass dies dort falsch wäre aber Sie sollten ohnehin keine eingebetteten Skripte oder Stile verwenden.

Namespaces - aber es gibt keinen Zeitpunkt, an dem die Verwendung eines XML-Namensraums inmitten eines HTML-Dokuments auch nur annähernd etwas klären würde.

3voto

Nathan Clark Punkte 127

Es ist "in Ordnung" in dem Sinne, dass fast jeder Browser es korrekt wiedergibt, aber nur, weil sie so gebaut sind, dass sie mit missgebildetem HTML/XHTML/XML/was auch immer umgehen können. Jedes Element, das nicht mit dem deklarierten Doctype (in Ihrem Fall die HTML DTD) übereinstimmt, verhindert jedoch die Validierung Ihres Codes und ist technisch gesehen missgebildet.

Andererseits wird die überwiegende Mehrheit der Websites (selbst solche, die korrekt wiedergegeben werden) nicht validiert, so dass dies kein großes Problem darstellt. Ich würde mich an (striktes) XHTML halten; beachten Sie den Kommentar von jimr zu selbstschließenden Tags (z. B. <img src="foo" /> ).

0voto

Javier Punkte 4452

Nein, es ist nicht in Ordnung. Zumindest theoretisch. Wenn Sie XHTML-Syntax in ein HTML-Dokument schreiben, ist sie ungültig. Die Browser werden es höchstwahrscheinlich genauso darstellen, aber es ist trotzdem ungültig. Außerdem ist das einzige, was in XHTML gültig und in HTML ungültig ist, ein selbstschließender Tag ( <br /> ). Nur weil man in HTML nicht verpflichtet ist, Tags zu schließen, heißt das nicht, dass man sie nicht schließen kann. Sie können Markup wie folgt schreiben:

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at enim sit amet urna placerat porttitor ut quis justo. Quisque posuere nisl ac libero dictum posuere. Suspendisse in magna neque. Donec et vestibulum sapien. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed at nulla dui.</p>

<img src="" alt="">

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at enim sit amet urna placerat porttitor ut quis justo.</p>

Sehen Sie? Es ist gültiges HTML, und es sieht gut aus.

BTW: dies lesen .

-1voto

Joe Davis Punkte 979

<DOCTYPE> ist ein Überbleibsel aus SGML und sollte nur einmal, am Anfang des Dokuments, erscheinen. Das Hinzufügen weiterer DOCTYPE-Deklarationen innerhalb des Dokuments würde sowohl gegen HTML als auch gegen XHTML verstoßen - auch wenn die meisten Browser Ihnen wahrscheinlich verzeihen würden.

Wenn Sie beides auf einer Seite verwenden müssen, wäre es vielleicht sinnvoller, das verschachtelte Dokument in einem IFRAME zu platzieren, da IFRAMEs per Definition einen separaten Fenster-/Dokumentenkontext darstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X