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.
The <!DOCTYPE>
declaration should always be included at the top of the HTML document, before the <html>
tag.
See HTML 4.01 Doctypes 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">
The HTML 4.01 specification provides several different types of doctypes that allow different types of elements to be specified within the document.
<!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.
<!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.
<!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.
HTML5 is not based on SGML, and therefore does not require a reference to a DTD.
HTML 5 Doctype declaration:
<!DOCTYPE html>
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?
<!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.
<!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.