Css doctype导致的布局问题

Css doctype导致的布局问题,css,Css,以下代码不需要doctype声明即可: <style type="text/css"> body { font: 1.0em verdana, arial, sans-serif; } * { margin:0; padding:0; } </style> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td>

以下代码不需要doctype声明即可:

<style type="text/css">
body {
    font: 1.0em verdana, arial, sans-serif;
}

* {
    margin:0; padding:0;
}

</style>

<table cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td><img src="/images/title_equipment.gif" /></td>
            <td><img src="/images/about.gif" /></td>
            <td><img src="/images/services.gif" /></td>
            <td><img src="/images/systems.gif" /></td>
            <td><img src="/images/equipment_new.gif" /></td>
            <td><img src="/images/equipment_used.gif" /></td>
            <td><img src="/images/news.gif" /></td>
            <td><img src="/images/contact.gif" /></td>
        </tr>
        <tr>
            <td><img src="/images/balers.gif" /></td>
        </tr>
</table>

身体{
字体:1.0em verdana,arial,无衬线;
}
* {
边距:0;填充:0;
}
但在添加doctype之后:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


尽管cellspacing和cellpadding都为零,但“tr”之间还是有间距。

一个HTML页面不使用doctype,或者有doctype,但前面有一个XML序言(我相信这个序言只适用于IE),它以所谓的方式呈现。另一种渲染模式是标准模式

现在,您的问题是由于
IMG
元素是内联元素,这意味着在标准模式下,它们下面会有一点空间。这不适用于怪癖模式


最快的解决方案是为这些IMG元素声明
display:block
。有一个HTML页面不使用doctype,或者有doctype,但是前面有一个XML序言(我相信这个序言只适用于IE),它以所谓的方式呈现。另一种渲染模式是标准模式

现在,您的问题是由于
IMG
元素是内联元素,这意味着在标准模式下,它们下面会有一点空间。这不适用于怪癖模式


最快的解决方案是为这些IMG元素声明
display:block
。正如Ionut已经建议的那样,如果没有在Quirks模式下运行的DOCTYPE,则会出现。

。虽然这看起来对您的渲染效果更好,但实际上在许多其他浏览器中渲染效果会有所不同

通过引入适当的DOCTYPE,您将指示浏览器以标准模式(或对于某些浏览器/DOCTYPE组合,几乎以标准模式)进行渲染。虽然这看起来对您的渲染效果不太好,但实际上它在所有浏览器中的渲染效果都会更加一致,因此其他人看到您所看到的内容的可能性更大。如果您修复了标准模式实现的样式,那么页面的所有访问者都会觉得不错


至于一个解决方案,恐怕我无法打败那篇解释问题和解决方案的MDC文章。正如Ionut已经建议的那样,如果没有您在怪癖模式下运行的DOCTYPE,我将无法比这篇文章更好地解释问题和解决方案。

。虽然这看起来对您的渲染效果更好,但实际上在许多其他浏览器中渲染效果会有所不同

通过引入适当的DOCTYPE,您将指示浏览器以标准模式(或对于某些浏览器/DOCTYPE组合,几乎以标准模式)进行渲染。虽然这看起来对您的渲染效果不太好,但实际上它在所有浏览器中的渲染效果都会更加一致,因此其他人看到您所看到的内容的可能性更大。如果您修复了标准模式实现的样式,那么页面的所有访问者都会觉得不错


至于一个解决方案,恐怕我无法比MDC文章更好地解释这个问题和解决方案。

为什么内联元素在标准模式下有空间?有什么原因吗?我的答案中对MDC链接有一个完整的解释。css不能控制“它们下面的小空间”吗?是的,它可以。使用
img{display:block;}
。我不能将img显示为block,我的意思是空间可以由“margin:0”或“padding:0”控制吗?为什么内联元素在标准模式下有空间?有什么原因吗?我的答案中对MDC链接有一个完整的解释。css不能控制“它们下面的小空间”吗?是的,它可以。使用
img{display:block;}
。我不能将img显示为block,我的意思是空间可以由“margin:0”或“padding:0”控制吗?通过垂直对齐:bottom固定,并将img的边框设置为零!固定垂直对齐:底部和设置img的边界为零!