Drupal Association Individual MemberZend Certified Engineer Details

Auf Kommentar antworten

XHTML oder HTML?

Einführung

HTML 4 und XHTML 1.0 verwenden dieselben Elemente (Tags). HTML enthält einige SGML-Features, wodurch z.B. bei einem vergessenen > das Dokument nachwievor gültiges HTML bleibt, aber trotzdem zu Darstellungsfehlern führt. Fehler sind somit schwer aufzuspüren (manuell oder automatisch). XHTML ist dagegen eindeutig bei der Schreibweise und damit einfacher (schneller) im Browser zu verarbeiten auch überhaupt erst vollständig validierbar. Strukturelle Fehler können also zu 100% aufgespürt werden. Das ist bei HTML mit seinen vielen möglichen Schreibweisen oder Auslassungen von Tags nicht möglich. Mit XHTML hat man zudem erweiterte Möglichkeiten wie das Einbinden anderer XML-Sprachen wie MathML.

Für XHTML spricht:

  • Gültige Syntax eindeutiger
  • Besser validierbar, selbst falsche Attribute von Tags können aufgespürt werden (XML Schema Validator)
  • Einfacher vom Browser zu verarbeiten
  • XML-Tools lassen sich einsetzen (z.B. für automatische Weiterverarbeitung)

Gegen XHTML:

  • document.write() (Javascript) kann nicht verwendet werden. Das könnte problematisch sein, wenn ältere Javascript-Programme zum Einsatz kommen sollen.

Transitional oder Strict?

Der Unterschied ist, daß Transitional ältere Tags wie <font> erlaubt und damit rückwärtskompatibel zu älteren Webseiten ist. Für neue Projekte sollte nur Strict verwendet werden, da es zum einen zukunftssicher ist und zum anderen den Code klarer macht.

Tips zum Einsatz von XHTML

  • Dokumente in der Standard-Kodierung von XHTML schreiben: UTF-8 (HTML-Entities sind dann nicht mehr notwendig)
  • Kodierung im Parameter charset von Content-Type nennen
  • Die XML-Deklaration (<?xml ... ?>) ist nicht nötig, wenn obige Punkte erfüllt sind. IE schaltet ansonsten auch nicht in den standards compliant mode, was sich auf die Interpretierung von CSS-Styles auswirkt.
  • XHTML sollte mit mit Content-Type application/xhtml+xml ausgeliefert werden. Es darf aber auch text/html verwendet werden. Ausnahme: Der IE braucht in jedem Fall text/html, da er application/xhtml+xml nicht versteht.
  • Dokumente müssen wohlgeformt sein: korrekte Reihenfolge von öffnenden/schließenden Tags einhalten
  • Elemente werden geschlossen
  • Elemente und Attribute werden kleingeschrieben
  • Attributwerte immer in Anführungszeichen
  • Attribute haben immer einen Wert (z.B. <option selected="selected" />)
  • XHTML Strict anstelle Transitional verwenden, um den Einsatz veralteter Sprachkonstrukte zu verhindern bzw. besser aufspüren zu können

Beispiel: Für Dateien mit Endung .html oder .php den Content-Type und charset-Parameter per mod_rewrite auf application/xhtml+xml umschalten, wenn der Browser es versteht und nicht mit geringerer Priorität angeben. Weitere Einschränkung: Nur bei HTTP/1.1-Anfragen umschalten, da ansonsten Caching in Proxys unmöglich wird (wenn z.B. eine gecachte application/xhtml+xml-Variante vom IE geladen wird, der die Datei als text/html bräuchte).

 # XHTML-konformer MIME type für entsprechende Browser
 RewriteEngine On
 # Safari sendet keinen brauchbaren Accept-Header, W3C_Validator sendet überhaupt keinen
 RewriteCond %{HTTP_USER_AGENT}  .*(Safari|W3C_Validator)/.* [OR] 
 RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
 RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml\s*;\s*q=0
 RewriteCond %{REQUEST_URI} \.(html|php)$
 RewriteCond %{THE_REQUEST} HTTP/1\.1
 RewriteRule .* - "[T=application/xhtml+xml; charset=utf-8]"


Siehe auch

Antworten

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
  • Zulässige HTML-Tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
  • Insert Google Map macro.

Weitere Informationen über Formatierungsoptionen