我一直在使用validator.w3.org服务来处理我的XHTML Transitional网页并对它非常满意 - 它很容易向我显示错误的语法和未关闭的标签。
但是,我们正在用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标记示例中所示),并且还遵循任何其他“好标准”。请告知你会做什么?
非常感谢
答案 0 :(得分:0)
在xhtml模式下验证时,所有内容都必须与该规范相匹配。另一方面,html5规范允许很多自由。对于这种特定情况,html5 specification on markup syntax说:
“非void元素必须具有结束标记,除非此引用的HTML元素部分中该元素的子部分指示可以省略其结束标记。”
specification of paragraph element表示可以省略结束标记,如果它后面跟着div标记,就像在你的例子中一样。
“如果p元素紧跟地址,文章,旁边,blockquote,dir,div,dl,fieldset,footer,form,h1,h2,h3,h4,h5,则可省略p元素的结束标记,h6,header,hr,menu,nav,ol,p,pre,section,table或ul元素,或者如果父元素中没有更多内容且父元素不是元素。“
如果你想要那种一致性,我认为你必须编写有效的xhtml。你能用一些能为你检查结束标签的编辑器吗?
答案 1 :(得分:0)
如果您要使用W3C HTML验证程序将网址验证为XHTML,并且该网页的文档类型为<!DOCTYPE html>
,那么您必须以XML格式提供该页面mime类型,例如application/xhtml+xml
到验证器。
这是一件好事。只有当你使用这样的mime类型时,浏览器才会将你的XHTML视为XHTML,否则他们会将它视为HTML,所有你认真的XHTML都会被标记为汤。使用HTML5,验证器现在的行为与浏览器相同。
否则,您应该了解HTML中的“正确结束标记”。这意味着在许多情况下可以省略关闭</p>
标记等内容。