This exercise says that <!DOCTYPE html> “specifies the version of HTML for the browser”. What are the different versions of HTML and why do they exist?



This exercise says that “specifies the version of HTML for the browser”. What are the different versions of HTML and why do they exist?


These days most web developers use HTML5 but pre-HTML5 some common doctypes included HTML 4.01 Strict, HTML 4.01 Transitional, XHTML 1.0 Strict, and XHTML 1.0 Transitional. For example, the HTML 4.01 Strict doctype look like this:

A strict doctype validates differently than the more permissive transitional doctype.

FAQ: Learn HTML Elements - Common HTML Elements - Where Does the Title Appear?

So if you type <!DOCTYPE html> the computer automatically knows that the html you are talking about is html5 or would you have to change the tag to <!DOCTYPE html5>???


<!DOCTYPE html> is the doctype declaration for html5, then the browser will understand it can expect a html document which uses html5 standards

<!DOCTYPE html5> is non-existing, don’t use it


The <! DOCTYPE> element is used to specify the type of the current document - the DTD (document type definition). This is necessary for the browser to understand how to interpret the current web page, since HTML exists in several versions, in addition, there is XHTML (EXtensible HyperText Markup Language), similar to HTML, but different in syntax. To the browser “did not get confused” and understood, according to what standard to display a web page and it is necessary to specify <! DOCTYPE> in the first line of the code.
Previously, the index file needed to write large lines like
<! DOCTYPE html PUBLIC" - // W3C // DTD XHTML 1.1 // EN “” dtd ">
Fortunately, with the advent of HTML5, everything became much simpler and the first line became significantly shorter: <! DOCTYPE html>


To a computer, <!DOCTYPE html> = HTML5


When you type the The computer basically knows you want what’s best which is the latest html. The latest in this case being html5, the computer will automatically use html5


So in the future if a new version of html becomes the standard rather than html5, will simply typing indicate using that latest version? And if so, will you then have to specify html5 by using ?


its difficult to say what w3c will do, only time will tell. But those guys know what they are doing, so surely they will do something sensible.


HTML5 is the current Living Standard. As the post above reads, the user agent will always implement the latest recommendations. We will never have to specify HTML5, as it will always be able to run in any newer browser. HTML in its newest form is for the most part fully backward compatible.

Technically, when served as the default text/html it validates to HTML 4.01 specs, save for the new bits.

To clarify, not the computer… The browser. We should always keep our browser(s) up to date so the latest recommendations are available.


The other DOCTYPEs for the various versions are:


  • HTML 4.01 transitional
  • HTML 4.01 strict
  • HTML 4.01 frameset
  • HTML 3.2


  • XHTML 1.0 transitional
  • XHTML 1.0 strict
  • XHTML 1.0 Frameset
  • XHTML 2.0


Personally I find the notation of !DOCTYPE html a bit contradictary. Most programming languages (that I know of) use the exclamation mark ("!") to state when something IS NOT.


From my (slightly inexperienced view) it means that the DOCTYPE IS NOT html…


I agree with you but that’s from a different point of view, I bet you’ve been working with java script or something like that but in html, the [!] is to specify something, in this case, the type of HTML you want to use, being HTML 5 because it is currently the latest


The exclamation mark in SGML is a comment, or part of it. The document type decaration is outside of the HTML, so not HTML at all. It is SGML.

Markup is not a programming language, but a declarative one. It has no logic, only declarations.

<!-- an HTML comment -->


Thanks for clarifying, I too have a lot to learn :slightly_smiling_face: