Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写XHTML严格标记值得吗?_Html_Xhtml - Fatal编程技术网

编写XHTML严格标记值得吗?

编写XHTML严格标记值得吗?,html,xhtml,Html,Xhtml,我注意到许多网站都是在XHTML过渡模式下设计的,尽管它们遵循了大多数现代的web设计实践。我认为transitional是一种临时解决方案,用于移植旧标记,而旧标记可能需要太多的重新设计工作 而且许多网站甚至不能在过渡状态下正确验证。我非常努力地遵守严格的标准,因为我相信不正确的标记会在某些东西不起作用时导致调试困难。然而,编写100%有效的代码需要大量的工作 我很好奇是否值得投入精力学习和编写XHTML严格兼容的标记 编辑:如果是的话,为什么没有更多的人这么做呢?对于我来说,偶然发现一个合适

我注意到许多网站都是在XHTML过渡模式下设计的,尽管它们遵循了大多数现代的web设计实践。我认为transitional是一种临时解决方案,用于移植旧标记,而旧标记可能需要太多的重新设计工作

而且许多网站甚至不能在过渡状态下正确验证。我非常努力地遵守严格的标准,因为我相信不正确的标记会在某些东西不起作用时导致调试困难。然而,编写100%有效的代码需要大量的工作

我很好奇是否值得投入精力学习和编写XHTML严格兼容的标记

编辑:如果是的话,为什么没有更多的人这么做呢?对于我来说,偶然发现一个合适的XHTML严格的网页似乎相当罕见。

几年来,我一直在编写严格的标记,并没有看到明显的好处


我更愿意使用HTML5,因为它更干净,在IE中退化得更好。

我过去总是严格编写所有XHTML,但那是因为我关心我的标记在语义上是否正确。不幸的是,大多数web开发人员要么(a)不关心语义正确的代码,要么(b)甚至不知道存在问题

实际上,如果您想严格地编写,只需编写页面,然后通过验证器运行它。它会告诉你哪里出了问题,你需要修复什么。你会在学习的过程中知道你应该做什么或不应该做什么。看电视能帮上很大的忙

另一方面,我还建议转向HTML5。HTML5没有“严格”和“过渡”这样的类型。如果你想按更严格的规则写作,你可以。如果你想按照失败者的规则写作,你可以。我还觉得它更干净,我更喜欢编写HTML5而不是XHTML。同样,通过验证器运行站点将使您能够洞察所做的不正确的事情

至于更多的人开始做什么,我想说HTML5有很大的推动作用。这不仅是因为它是一个新的很酷的东西,而且因为它修复了XHTML和HTML4中存在的许多麻烦和烦恼

所以,我的建议是朝这个方向走。

简短的回答:不

我从未发现严格的XHTML值得这么做

它的第一个问题是,它不推荐了许多实际上很有用的HTML特性,并且没有很好的替代解决方案。如果您需要与旧浏览器的向后兼容性(当然每个人都需要),这是一个特别的问题。过渡规范没有反对这些特性,这就是为什么人们使用它而不是严格的

不推荐使用的功能包括
标记(CSS替代方案当时不兼容跨浏览器)和
标记的
目标属性(它允许你在一个新窗口、标签或框架中打开一个链接;现在还没有其他方法可以做到这一点,没有人停止使用它,HTML5也重新引入了它)。有很多其他功能都是这样的,但已经很久了,我记不清了

其次,它的设计目的是,如果您的标记有哪怕是最小的错误,也会导致浏览器失败。这在理论上听起来很好,但总是注定要失败。这基本上是规范编写者针对低质量HTML代码的扩散采取的一个反动步骤,这些代码过去是(在某种程度上仍然是)web的一个主要问题。但是他们忘记了设计客户机-服务器协议的一条关键规则,即服务器应该严格控制它发送的内容,而客户机应该宽松。所有成功的客户机-服务器协议都遵循这条规则

关心您的标记是否有效是件好事——事实上,这非常重要,不管(x)是什么您正在使用的HTML方言-但是您应该在开发阶段检查,而不是让最终用户的浏览器为您进行验证。如果您是一名优秀的开发人员,您应该在代码接近用户之前就知道它是好的。事实上,如果这导致您的站点在如果是最终用户,那么这将是一场灾难。如果HTML被破坏,即使破坏得很严重,用户通常也可以浏览和阅读网站,以便能够找到联系人详细信息,以便您报告错误。如果浏览器尊重严格的XHTML doctype,一个微小的标记错误可能会导致您的网站显示标准浏览以外的内容ser错误消息。这是一个非常糟糕的用户体验

最后,它没有提供任何新功能。它所做的一件旧HTML版本没有做的事情是允许将文档解析为XML文档。这有助于验证您的文档是否没有任何错误,但实际上没有实现太多其他功能。您还可以使用名称空间,将其他XML格式嵌入到文档中这是复杂的,也没有真正实现多少新的

XHTML一直是一个理想主义的梦想,幸好现在HTML5已经成为一个新的、令人兴奋的东西,它正在逐渐消失。

我想说是的(ish)

通常,选择严格版本会影响您应该遵循的标准。例如,xhtml严格版本中不推荐的属性(但在过渡版本中允许)不会出现在标准的后续版本中

现在,随着从xhtml到html5的转变,我的经验法则有点被打破了。因为html5没有严格的版本,但我想说的是html5(甚至是xhtml5)而不是XHTMLStrict


但我想说的是,一般来说,坚持最严格的版本会让你专注于最佳实践,为下一个版本做好准备,也就是说,事情不会倒退(理论上)。

你能举几个有用的弃用功能的例子吗?看起来