我注意到,尽管遵循大多数现代网页设计实践,许多网站都是在XHTML Transitional下设计的。我认为过渡是一种临时解决方案,用于移植可能需要花费太多精力重新设计的旧标记。
许多网站甚至在Transitional下都没有正确验证。我非常努力地坚持严格的标准,认为不正确的标记会导致在某些东西不起作用时调试很困难。但是,编写100%有效代码需要做很多工作。
我很好奇是否值得学习和编写符合XHTML严格标准的标记。
编辑:如果是的话,为什么没有更多的人这样做呢?对于我来说,偶然发现一个适当的XHTML严格网页似乎很少见。答案 0 :(得分:4)
我曾经写过所有XHTML严格,但那是因为我关心我的标记在语义上是正确的。不幸的是,大多数Web开发人员要么(a)不关心语义正确的代码,要么(b)不知道甚至存在问题。
真的,如果你想用Strict编写,只需编写你的页面,然后通过验证器运行它。它会告诉你什么是错的,你需要解决什么。随着你应该或不应该做的事情,你将学习。查看official spec可以提供很大帮助。
另外,我还建议转到HTML5。 HTML5没有类似“严格”和“过渡”的类型。如果你想用更严格的规则写,你可以。如果你想按失败者规则写,你可以。我也觉得它更干净,我喜欢写HTML5比XHTML更多。同样,通过验证器运行您的网站将让您深入了解您所做的不正确的事情。
至于更多人开始做什么,我想说HTML5会有很大的推动力。不仅因为它是新的和酷的事情,而且因为它修复了XHTML和HTML4中存在的许多麻烦和烦恼。
所以,我的建议是朝这个方向前进。
答案 1 :(得分:4)
简答:不。
我从未发现Strict XHTML值得付出努力。
它的第一个问题是它弃用了许多HTML功能,这些功能实际上很有用,并且没有很好的替代解决方案。如果您需要向后兼容旧浏览器(当然每个人都这样做),这是一个特殊问题。 Transisional规范没有弃用这些功能,这就是为什么人们使用它而不是Strict。
不推荐使用的功能包括<center>
标记(CSS替代品当时不是跨浏览器兼容的)和target
标记的<a>
属性(允许您打开)新窗口,选项卡或框架中的链接;仍然没有任何其他方法可以执行此操作,没有人停止使用它,HTML5已重新引入它)。同一条线上还有很多其他功能,但已经很长时间了,我不记得了。
其次,如果您的标记甚至出现最小的错误,它的设计会导致浏览器失败。这在理论上听起来很棒,但总是注定要失败。这基本上是规范编写者采取的反动步骤,反对低质量HTML代码的扩散,这些代码是(并且在某种程度上仍然是)Web的主要问题。但他们忘记了设计客户端 - 服务器协议的关键规则,即服务器应该严格控制它发送的内容,但客户端应该是宽松的。所有成功的客户端 - 服务器协议都遵循此规则。
关心你的标记是否有效是件好事 - 事实上,无论你写的是什么(x)HTML方言,它都非常重要 - 但你应该在开发阶段检查 ,不要让最终用户的浏览器为您进行验证。如果你是一个优秀的开发人员,你应该知道你的代码在它到达用户附近之前是好的。事实上,如果这导致您的网站在最终用户面前彻底破坏,那么这就是一场灾难。使用破碎的HTML,即使它被严重破坏,用户通常也可以充分浏览和阅读网站,以便能够找到您报告错误的联系详细信息。使用尊重严格的XHTML文档类型的浏览器,一个微小的标记错误可能导致您的网站只显示标准浏览器错误消息。这是一个非常糟糕的用户体验。
最后,它没有提供任何新功能。旧版HTML版本没有做的一件事是允许将文档解析为XML文档。这有利于验证您的文档没有任何错误,但并没有真正实现其他目的。您还可以使用命名空间将其他XML格式嵌入到您的文档中,但这很复杂,并没有真正实现新的。
XHTML总是一个理想主义的梦想,幸运的是,现在HTML5已经成为新的和令人兴奋的东西。
答案 2 :(得分:1)
没有
我已经写了几年严格的标记了,我看不到明显的好处。
我更愿意使用HTML5 <!DOCTYPE html>
,因为它更清晰,在IE中降级得很好。
答案 3 :(得分:0)
我会说是(ish)。
通常选择严格版本会暗示您应该遵循哪些标准。即xhtml strict中的弃用属性(但在过渡时允许)不会出现在标准的更高版本中。
现在我的经验法则有点破碎了,从xhmtl到html5的运动。由于html5没有严格的版本,但我会说去html5(甚至是xhtml5)而不是xhtml strict。
但是我会说,一般来说,坚持使用最严格的版本可以让你专注于为下一个版本准备的最佳实践,即事情不会倒退(理论上)。