1

我一直在为我的 XHTML 过渡网页使用 validator.w3.org 服务,并且对它非常满意 - 它很容易向我显示不正确的语法和未闭合的标签。

然而,我们正在用 HTML5 编写我们的新网站 - 所以 Doctype 自然地变成了 . 因此 w3 验证器将页面验证为 HTML5。我已经使用了一段时间,但只是意识到它不会通知我未关闭的标签。例如,如果我使用

<div><p>This is my text and I am not closing this P tag</div>

然后 XHTML 验证器将通知我上述问题,但 HTML5 上的验证并没有告诉我上述问题。有什么办法可以解决这个问题吗?

此外,我一直在自由使用如下代码,如果验证为 XHTML,则会显示以下错误,但如果验证为 HTML(5) 则没有任何问题:

 Line 266, Column 51: document type does not allow element "h5" here; missing one of  "object", "applet", "map", "iframe", "button", "ins", "del" start-tag

<a href="/outlet/" title="" rel='nofollow'><h5>OUTLET</h5></a>

我认为上面的(在 A 元素中使用 H5)在 HTML5 上是可以的,但是在意识到 HTML 没有被验证为 XHTML 之后,我很困惑!如果我想按照“良好标准”构建网页——我应该遵循什么标准?我肯定想使用 HTML5,但我还想确保我的代码具有正确的结束标记(如上面的 P 标记示例)并且还遵循任何其他“良好标准”。请指教你会怎么做?

非常感谢

4

2 回答 2

0

在 xhtml 模式下进行验证时,所有内容都必须符合该规范。另一方面,html5 规范允许很大的自由度。对于这种特定情况,关于标记语法的 html5 规范说:

“一个非 void 元素必须有一个结束标记,除非本参考的 HTML 元素部分中该元素的小节表明它的结束标记可以省略。”

段落元素的规范说可以省略结束标记,如果它紧随其后的是 div 标签,就像在你的例子中一样。

“如果 p 元素后面紧跟着地址、文章、旁白、块引用、目录、div、dl、字段集、页脚、表单、h1、h2、h3、h4、h5、h6,则可以省略 p 元素的结束标记header、hr、menu、nav、ol、p、pre、section、table 或 ul 元素,或者如果父元素中没有更多内容且父元素不是 a 元素。"

如果你想要那种一致性,我认为你必须编写有效的 xhtml。您可以使用一些可以为您检查结束标签的编辑器吗?

于 2012-04-17T09:45:46.773 回答
0

如果您想使用 W3C HTML 验证器将 URL 上的页面验证为 XHTML,并且该页面具有<!DOCTYPE html>其 doctype,那么您必须使用 XML mime 类型为该页面提供服务,例如application/xhtml+xml验证器。

这是一件好事。只有当您使用这种 mime 类型时,浏览器才会将您的 XHTML 视为 XHTML,否则它们会将其视为 HTML,而您所有细心的 XHTML 都将成为标签汤。在 HTML5 中,验证器现在的行为方式与浏览器相同。

否则,您应该了解什么是 HTML 中的“正确结束标签”。</p>这意味着在许多情况下可以省略诸如结束标签之类的东西。

于 2012-04-17T15:12:41.693 回答