Css doctype导致的布局问题
以下代码不需要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>
<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的边界为零!