Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do we need DOCTYPE to the HTML/JSP pages?

Tags:

html

jsp

doctype

Why do we need doctype in HTML/JSP pages? Pages seem to work without it.

like image 692
Puru Avatar asked Jun 30 '10 09:06

Puru


2 Answers

Escpecially Microsoft IE has a major problem with certain doctypes or a complete lack of doctype. At the bottom of this page you can find a concise overview of browser behaviour in combination with certain doctypes. There are three standard behaviours:

  • Q - Quirksmode. You really don't want to have that. It triggers box model bug in IE. The CSS width and height then incorrectly covers the padding and border.
  • A - Almost standards mode. Affordable, only vertical sizing of table cells is not as per CSS2 spec. Useful if you want to avoid mysterious gaps of images in table cells.
  • S - Standards mode. Browser tries to be fully w3 HTML/CSS standard compliant. Preferred mode since it's the only mode you can be less or more certain that your website will look exactly the same in all browsers.

Here's a piece of HTML which demonstrates the box model bug in IE. Copy'n'paste'n'run it. With <!DOCTYPE html> present, you'll see a rectangle. Without the doctype line you'll see a genuine square.

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Remove DOCTYPE to trigger quirksmode</title>
        <style>
            #box { 
                background: yellow; 
                width: 100px;
                padding: 20px; 
                border: 20px solid black; 
                margin: 20px;
            }
        </style>
    </head>
    <body>
        <div id="box">box</div>
    </body>
</html>

The influence of this IE bug is the most noticeable when you want a "pixelperfect" webdesign.

like image 65
BalusC Avatar answered Oct 17 '22 00:10

BalusC


Zeldman wrote

Per HTML and XHTML standards, a DOCTYPE (short for “document type declaration”) informs the validator which version of (X)HTML you’re using, and must appear at the very top of every web page. DOCTYPEs are a key component of compliant web pages: your markup and CSS won’t validate without them.

and Take a look at 24 Ways Article "Transitional vs. Strict Markup"

at coming HTML 5 , you'll only need to declare

<!DOCTYPE HTML>
like image 29
Ye Lin Aung Avatar answered Oct 17 '22 01:10

Ye Lin Aung