One of the more frustrating (and less well-known) aspects of the newer browsers (version 6+) is the way it performs in the absence of a DOCTYPE. You may have written your XHTML document 100% correctly, but without a DOCTYPE, the browsers will render it as though you'd written it in non-standards compliant HTML. This "quirky" mode is how the browser manufacturer's have solved the problem of continuing to support older browser modes while remaining standards compliant.
The DOCTYPE Choices
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
HTML 2.0
This isn't used much any longer, but if you want to indicate that your document is very minimal, you might use this DTD. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
HTML 3.2
HTML 3.2 is still used fairly often. It includes tables, applets, superscripts, and subscripts. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01
Use this DTD for documents where you're almost ready to support XHTML, but you still want to use items like tables for layout rather than more strict interpretations. - <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
HTML 4.01
If you're going to put up frames in HTML, then you should use this frameset DTD. - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01
If you're going to build HTML 4 pages, you should use this DTD, but it is very strict, and doesn't include any elements that will be phased out in favor of style sheets. - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0
This is essentially the same DTD as the HTML 4.01 Transitional, but it's written in strict XHTML. - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.0
This is essentially the same DTD as the HTML 4.01 Frameset, but it's written in strict XHTML. - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0
This is essentially the same DTD as the HTML 4.01 Strict, but it's written in strict XHTML.
So, when you're writing your HTML or XHTML, be sure to specify the DTD. Otherwise, you might be surprised at how your pages display in newer browsers.

