HTML Doctypes

Complete reference for DOCTYPE declarations across HTML versions

Quick Answer

What is an HTML DOCTYPE?

The DOCTYPE declaration tells browsers which HTML version you're using. HTML5 uses the simple <!DOCTYPE html> declaration at the start of your document. Older versions like HTML 4.01 and XHTML required longer DOCTYPE declarations. Always include a DOCTYPE to ensure browsers render your page in standards mode.

HTML5 (Recommended)

HTML5 DOCTYPE
<!DOCTYPE html>

The HTML5 doctype is simple, short, and case-insensitive. It is the recommended doctype for all modern HTML documents. This declaration tells the browser to render the page in standards mode.

Features:

  • Simple and easy to remember
  • Case-insensitive
  • Triggers standards mode in all browsers
  • Supports all HTML5 features

HTML 4.01

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

This DTD contains all HTML elements and attributes, but does NOT include presentational or deprecated elements (like font). 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">

This DTD contains all HTML elements and attributes, INCLUDING presentational and deprecated elements (like font). 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">

This DTD is equal to HTML 4.01 Transitional, but allows the use of frameset content.

XHTML 1.0

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

This DTD contains all HTML elements and attributes, but does NOT include presentational or deprecated elements (like font). Framesets are not allowed. Markup must be written as well-formed XML.

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

This DTD contains all HTML elements and attributes, INCLUDING presentational and deprecated elements (like font). Framesets are not allowed. Markup must be written as well-formed XML.

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

This DTD is equal to XHTML 1.0 Transitional, but allows the use of frameset content.

XHTML 1.1

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

This DTD is equal to XHTML 1.0 Strict, but allows you to add modules (for example to provide ruby support for East-Asian languages).