为什么doctype如此影响大小?

时间:2011-12-26 09:34:38

标签: html css html-table doctype

以下代码从没有doctype的图像部分绘制漂亮的椭圆形按钮。原始图像为143x45并正确切片。

<body bgcolor="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">


<div style="position:absolute; left:200px; top:200px">
    <table border="0" cellpadding="0" cellspacing="0">
        <tr>
            <td style="width:19px; height:3px; background-image:url('images/button_01.png')"></td>
            <td style="height:3px; background-image:url('images/button_02.png')"></td>
            <td style="width:20px; height:3px; background-image:url('images/button_03.png')"></td>
        </tr>
        <tr>
            <td style="width:19px; height:19px; background-image:url('images/button_04.png')"></td>
            <td style="background-color:rgb(183,174,130)" rowspan="3">

                Some text

            </td>
            <td style="width:20px; height:19px; background-image:url('images/button_06.png')"></td>
        </tr>
        <tr>
            <td style="width:19px; background-image:url('images/button_07.png')"><img src="images/button_07.png" width="19" height="1" alt=""></td>
            <td style="width:20px; background-image:url('images/button_08.png')"><img src="images/button_08.png" width="20" height="1" alt=""></td>
        </tr>
        <tr>
            <td style="width:19px; height:19px; background-image:url('images/button_09.png')"></td>
            <td style="width:20px; height:19px; background-image:url('images/button_10.png')"></td>
        </tr>
        <tr>
            <td style="width:19px; height:3px; background-image:url('images/button_11.png')"></td>
            <td style="height:3px; background-image:url('images/button_12.png')"></td>
            <td style="width:20px; height:3px; background-image:url('images/button_13.png')"></td>
        </tr>
    </table>
</div>

</body>

但是如果我添加声明

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

到文档的开头,按钮变得更高,好像中心部分存在某些东西。

为什么会这样?有可能避免这种行为吗?什么是更好的:找到一种方法使这个工作在HTML 4.01上或将doctype更改为更现代的?

2 个答案:

答案 0 :(得分:4)

如果没有DOCTYPE,每个网络浏览器都以独特的方式运行,我们称之为“怪癖模式”。使用DOCTYPE,结果将符合DOCTYPE标签中给出的标准,在您的情况下,我们称之为“严格模式”,因为您提供“... / strict.dtd”。

在我看来,你应该坚持标准。因为每种浏览器都有自己的怪癖模式,并且从这个浏览器产生不可预测的结果到另一个浏览器。

答案 1 :(得分:1)

每个浏览器都有自己的标准,但是如果使用doctype则需要使用标准。我希望这对你有帮助。