2011-07-08 69 views
5

我注意到,尽管遵循大多数现代网页设计惯例,许多网站都是在XHTML Transitional下设计的。我认为过渡意味着将旧标记移植到临时解决方案,这可能需要过多的努力来重新设计。写XHTML严格标记值得吗?

很多网站甚至在Transitional下都没有正确验证。我非常努力地坚持严格的标准,认为不恰当的标记会导致调试时出现很多困难,因为某些东西不起作用。但是,编写100%有效代码的工作量很大。

我很好奇是否值得付出努力来学习和编写符合XHTML标准的标记。

编辑:如果是这样,为什么不更多的人这样做?我偶然发现一个合适的XHTML严格网页似乎很少见。

回答

4

简答:没有。

我从来没有发现严格的XHTML值得努力。

它的第一个问题是它弃用了一些实际有用的HTML特性,并且没有好的替代解决方案。如果您需要与旧浏览器(当然每个人都这样做)向后兼容,这是一个特殊问题。 Transisional规范并没有否定这些功能,这就是为什么人们使用它而不是严格的。是不提倡使用的

特点包括<center>标签(CSS替代品尚未跨浏览器的时候兼容)和target属性为<a>标签(它允许你打开一个新的窗口,标签或帧的链接;还没有其他方法可以做到这一点,没有人停止使用它,并且HTML5重新引入了它)。沿着同样的路线还有其他许多特征,但这已经很长时间了,我不记得它们全部。其次,它的设计目的是在浏览器失败,如果你的标记甚至有最小的错误。这听起来理论上很好,但总是注定要失败。这基本上是规范编写者采取的一个反动步骤,反对劣质HTML代码的扩散(这在某种程度上仍然是Web的主要问题)。但他们忘记了设计客户端 - 服务器协议的关键规则,即服务器应严格发送内容,但客户端应该是宽松的。所有成功的客户端 - 服务器协议遵循此规则。

这是好事,关心您的标记是有效的 - 事实上,这是非常重要的,不管你在写什么(X)HTML方言的 - 但你应该检查在开发阶段是,不让最终用户的浏览器为你做验证。如果你是一位优秀的开发人员,你应该知道你的代码在用户靠近之前是好的。事实上,如果这会导致您的网站在最终用户面前完全崩溃,那么这是一场灾难。对于破碎的HTML,即使破损严重,用户通常可以浏览并充分阅读该网站,以便能够找到联系人详细信息以供您报告错误。如果浏览器遵守严格的XHTML文档类型,那么一个微小的标记错误可能会导致您的网站只显示标准浏览器错误消息。这是非常糟糕的用户体验。

最后,它没有提供任何新功能。它做的一件事是哪些旧的HTML版本没有做的是允许文档被解析为一个XML文档。这对验证您的文档没有任何错误很有帮助,但并没有真正实现其他功能。您还可以使用名称空间将其他XML格式嵌入到您的文档中,但这很复杂,并没有真正实现新功能。

XHTML一直是一个理想主义的梦想,现在HTML5已经成为新兴事物,它现在正在消失。

+0

您能举几个有用的弃用功能的例子吗?在我看来,所有功能都具有良好的符合XHTML的解决方案。 – tskuzzy

+1

@tskuzzy - 好的,我已经编辑了答案,其中包含两个功能,这些功能阻止了我在当天严格限制XHTML的使用。 – Spudley

1

我已经写了几年的严格标记和有,我可以看到没有明显的好处号。

我宁愿使用HTML5 <!DOCTYPE html>,因为它在IE中更干净并且性能下降。

4

我曾经写严格的所有XHTML,但那是因为我关心我的标记语义上是正确的。不幸的是,大多数Web开发人员(a)不关心语义上正确的代码,或者(b)不知道甚至存在问题。

真的,如果你想在Strict中编写,只需编写你的页面,然后通过验证器运行它。它会告诉你什么是错的,你需要解决什么问题。你会学习你应该做什么或不该做什么事情。看看official spec可以帮助很大。

另一方面,我也建议转移到HTML5。 HTML5不具有“严格”和“过渡”等类型。如果你想写更严格的规则,你可以。如果你想按输家规则写,你可以。我也觉得它周围更干净,我喜欢写HTML5比XHTML更多。再次,通过验证器运行你的网站会让你知道你所做的事情是不正确的。至于更多的人开始做什么,我会说对HTML5有很大的推动力。不仅因为这是一件新而酷的事情,而且因为它解决了XHTML和HTML4中存在的许多麻烦和烦恼。

所以,我的建议是朝着那个方向前进。

+0

我绝对同意编写有效的标记很重要,但XHTML Strict从来不是解决方案,因为它将验证放在用户面前,如果它甚至有点错误,则会显示可怕的错误消息:该类型的测试应该是在它靠近用户的任何地方之前就已经完成了。 – Spudley

0

我会说是(ish)。

通常选择严格的版本将会引用你应该遵循的标准。即xhtml strict中的不赞成使用的属性(但允许过渡),不会出现在标准的更高版本中。

现在我的经验法则是有点破,从xhmtl到html5的运动。由于html5没有严格的版本,但我会说html5(甚至xhtml5),而不是xhtml严格。

但我会说一般情况下试图坚持最严格的任何版本,让你专注于为下一个版本准备的最佳实践,即事情不会倒退(理论上)。