2009-11-30 4 views
24

Wir sehen <!DOCTYPE ...> oft wie folgt:Was ist die Funktionalität von! DOCTYPE?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

Was die Funktionalität von !DOCTYPE ist?

Antwort

23

Die wichtigste Verwendung von DOCTYPE ist switch a browser between Quirks Mode and Standards Mode rendering.

Diese Funktion wurde aufgrund des "kaputten" Renderings in älteren Versionen von IE entwickelt. Es wurde erkannt, dass, wenn Microsoft die IE-Rendering-Engine nur "repariert" hat, viele existierende Sites nicht richtig gerendert werden. So, wie es funktioniert, wenn Sie eine gültige gültige DOCTYPE-Deklaration überhaupt auf Ihrer Seite setzen, ist die Annahme, dass Sie wissen, was Sie tun und Ihr Browser wird in einer standardkonformen Weise rendern, und wenn Sie keine setzen darin wird auf die alte "falsche" Art und Weise übertragen.

Dies wurde ursprünglich in IE für den Mac gemacht, aber dieses Verhalten ist das gleiche in allen Versionen von IE seit IE5 und Firefox, Chrome, Safari und Opera.

Was der DOCTYPE ist angenommen zu sein ist ein Document Type Definition. HTML ist Teilmenge von SGML (wie XML). Die DTD teilt einem Parser mit, welche Syntax Sie verwenden. Auf einer Webseite sollte Ihr DOCTYPE also der Version von HTML entsprechen, die Sie verwenden.

+0

so bedeutet die "xhtml1-transitional.dtd" Quirks-Modus oder Standards-Modus? – Ricky

+1

Alle gültigen Doctypes, einschließlich XHTML 1.0 Transitional, bewirken, dass die Seite im Standardmodus angezeigt wird.Wenn der Doctype weggelassen wird, wird die Seite jedoch im Quirks-Modus angezeigt. –

7

Es teilt dem Validator mit, welche Version von HTML Sie verwenden. Ein Browser verwendet diese Informationen, um die Seite korrekt zu rendern.

sind hier richtige Version von DOCTYPE:

  • HTML 4.01 Strict, Transitional, Frameset

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 
    
  • XHTML 1.0 Strict, Transitional, Frameset

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 
    
  • XHTML 1.1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    
  • HTML5

    <!DOCTYPE html> 
    
+0

Was ist der Unterschied zwischen diesen Definitionen? ist xhtml 1.1 das gleiche wie html 4? – hora

+0

Sie sind ein anderer Standart – demas

+4

Sie können auch den HTML5 Doctype hinzufügen: "". –

-1

Es teilt Ihrem Browser, der HTML-Version wird es wissen, ein bisschen schneller als der Browser macht die Ladezeit geladen, was zu erwarten.

Der Doctype ist ein Standard, der vom w3c definiert wird - wenn Sie von standardbasierter Webentwicklung hören, sprechen sie davon. Die Idee der Verwendung des Doctype ist die Erstellung von gültigem HTML, das dem Doctype folgt.

Wenn Sie clever sind, können Sie Ihren eigenen Doctype schreiben.

-1

Der hauptsächliche (praktische) Zweck von DOCTYPEs besteht darin, den IE von "quirks mode" auf "norms compliant mode" zu zwingen, beides Euphemismen für "horribly broken mode" bzw. "leicht broken mode".