Which "DOCTYPE" should I use

Hi! I am at the start of “Build Your Own Web Site The Right Way Up…”. The book did not mention ‘Transitional’ and ‘Frameset’ only the ‘Strict’.
I understand that this may be a way to make newbie stick to the straight and narrow road of web development but, I want to know where and when can one use the other options or is it better to forget them and concentrate on the strict?
Also, why ‘XHTML1.0 strict’ and not ‘XHTML4.01 strict’ in the declaration given?
Can anyone help and explain these things?

The best advice is to forget Transitional and Frameset completely, and just work on Strict. The only extra features you can use in Transitional or Frameset are ones that you shouldn’t be using – they have been deprecated (ie, you’re not supposed to use them) for over 10 years now. All of those effects can more legitimately be achieved by other HTML elements and by CSS.

As to whether to use HTML or XHTML – my vote would be for HTML but this is already being discussed at great length, and the greatest minds on Sitepoint Forums can’t agree…

Thanks for your help. I can continue my reading now.

:scratch: I can’t figure what reason that would be? Strict is the way to go like Stevie mentioned. There is no reason or excuse or what so ever to use Transitional or Frameset.

Well that’s why the transitional and frameset doctypes exist - for pages that were originally written way back before HTML 4 that you haven’t had time to finish rewriting to use HTML 4 properly yet.

I like to use strict because it is so easy to check the validity of a web-page. Results are instant along with verbose error details and suggestions.


XHTML 5 will be released in parallel with HTML 5 for anyone who has a fetish for closing spot tags. TPTB seem to have finally realised, after the fiasco of XHTML 2, that new versions of XHTML will only be successful if they are an XML-compatible version of the current HTML language, and any forking in the language will be the death of them.

I use <!DOCTYPE html>

But before people start yelling at me… use whichever you want. It doesn’t really affect anything except the validator

Strict is a good place to start because it promotes good practice, but if you simply can’t get the damn thing to work properly without it being Transitional (sometimes we simply don’t have control over all of the HTML output), that’s fine as well