HTML Doctype导致格式化问题

时间:2012-02-24 17:57:07

标签: html

我有一些HTML代码。这是一个带有片段的小提琴的链接: http://jsfiddle.net/U32UU/2/

问题没有显示在jsfiddle中,但您可以在本地复制代码段并在浏览器中查看。包含doctype规范,问题是“错误”样式标记格式错误的所有内容。在该行的上方和下方添加了空间。如果我删除了doctype指令,那么问题就会消失,格式化也会很好。

在此处查看:http://www.w3schools.com/tags/ref_html_dtd.asp

我没有做任何不受该doctype支持的事情。我也想知道我是否需要doctype规范。没有它似乎工作得很好,但我想知道为什么格式化问题存在。

2 个答案:

答案 0 :(得分:3)

段落应该有利润。在严格模式下(使用DOCTYPE),它们总是这样做,但在怪癖模式下(没有DOCTYPE),当段落放在表格中时,边距消失。这是浏览器中的错误! (顺便说一句,这是一个故意的。)

因此,如果您想要一个没有边距的段落,请将其margin属性设置为0。

p {margin:0}

或者如果您希望这只发生在表格中,

table p {margin:0}

这将在严格和怪癖模式下工作。

答案 1 :(得分:1)

将以下内容添加到您的样式中。您正在将<p>标记嵌套到表中,并且每个默认样式表都有一个边距。

p.error { 
  color: red;
  margin: 0;
}

由于这个原因,为什么你会遇到{out} doctype定义的不同行为,我不知道,但它可能来自浏览器在不同渲染模式下使用的不同默认样式表。