Skip to main content

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:

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 <!DOCTYPE s are also valid:

<!DOCTYPE html>
<!DOCTYPE html>
<!DOCTYPE html>

This SO article discusses the topic extensively: Uppercase or lowercase doctype?

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]>