Horje

HTML - Doctypes
Start
  Adding the Doctype

The <!DOCTYPE> declaration should always be included at the top of the HTML document, before the <html> tag.

See HTML 5 Doctype (opens new window) for details on the HTML 5 Doctype.

<!DOCTYPE html>

See HTML 4.01 Doctypes (opens new window) for details on how these types differ from each other.

Strict

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Transitional

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Frameset

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

  HTML 5 Doctype

HTML5 is not based on SGML, and therefore does not require a reference to a DTD.

HTML 5 Doctype declaration:

<!DOCTYPE html>

Case Insensitivity

Per the W3.org HTML 5 DOCTYPE Spec (opens new window):

A DOCTYPE must consist of the following components, in this order:

    • A string that is an ASCII case-insensitive match for the string "<!DOCTYPE".

    therefore the following DOCTYPEs are also valid:

    <!doctype html>
    <!dOCtyPe html>
    <!DocTYpe html>
    
    

    This SO article discusses the topic extensively: Uppercase or lowercase doctype? (opens new window)

      HTML 4.01 Doctypes

    The HTML 4.01 specification provides several different types of doctypes that allow different types of elements to be specified within the document.

    HTML 4.01 Strict

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    
    

    Includes all HTML elements and attributes, but does not include presentational or deprecated elements and framesets are not allowed.

    HTML 4.01 Transitional

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    
    

    Includes all HTML elements and attributes and presentational and deprecated elements, but framesets are not allowed.

    HTML 4.01 Frameset

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
    
    

    Includes all HTML elements and attributes, presentational and deprecated elements. Framesets are allowed.

      Old Doctypes

    HTML 3.2

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
    
    

    HTML 3.2 is well supported by most browsers in use. However, HTML 3.2 has limited support for style sheets and no support for HTML 4 features such as frames and internationalization.

    HTML 2.0

    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
    
    

    HTML 2.0 is widely supported by browsers but lacks support for tables, frames, and internationalization, as well as many commonly used presentation elements and attributes.

    Syntax

    • <!DOCTYPE [version-specific string]>

    Remarks

    The <!DOCTYPE> declaration is not an HTML tag. It is used for specifying which version of HTML the document is using. This is referred to as the document type declaration (DTD).

    The <!DOCTYPE> declaration is NOT case sensitive. To check if the HTML of your Web pages is valid, go to W3C's validation service (opens new window).

    • Some old versions of IE don't support some HTML tags unless a proper doctype is available.
    • It's vital that a doctype is declared as to make sure the browser doesn't use quirks mode. More info on MDN. (opens new window)

    Read Article
    https://develop.horje.com/learn/1434/reference