5

W3C 已终止对多语言标记的支持。那么我是否必须将我的网站转换为使用常规 HTML5 而不是 XHTML?他们放弃这个概念会如何影响现有网站?我想要一个完全有效的标记,如果该代码与标准冲突,我将不得不删除它。

4

1 回答 1

3

像往常一样,在没有真正理解 XHTML 是什么的情况下,更多地抨击对 XHTML 的评论。

  • XHTML 使用 XML 解析器。
  • HTML 使用 HTML 解析器。

  • XML 解析器是严格的,它是一个容错性低的应用程序。
  • HTML 解析器很轻松,不介意潜艇上的纱门是否打开。

您可以并且应该使用可用的最严格的工具。在 PHP 中的示例中,您应该始终检查变量是否为isset. 为什么?黑客将从表单中删除一个input元素,提交表单,然后尝试查看服务器会发送哪些错误消息。但是,如果您降低 PHP 错误消息的严格性,您会认为一切都很好。

我看到一个人为为什么只有 Safari 不能正确渲染某种样式而紧张了三天。如果他使用 XML 解析器,该页面(在 Firefox 中)将完全失败,并且他会收到一条错误消息,指出错误是什么,它在哪一行以及该行上的哪一列(其他浏览器渲染到行,所以默认使用 Firefox 进行测试)。他的错误?他在他的一个属性周围缺少双引号;他的潜艇上的纱门大开着。

这并不意味着您不能使用 HTML5,因为我们在这里讨论的是语法。理想情况下,您应该使用 XHTML5,HTML5 使用 XML 解析器。id尽管它需要您在更高级别上进行编码,但它并不能解决所有问题(示例中的属性值重复)。

是的,IE8 不支持 XHTML(它有点支持 XML),但它甚至不值得考虑支持 IE8。坦率地说,它是唯一拥有任何“重要”市场份额但不支持 XHTML 的浏览器,但这并不意味着您不能进行内容协商:

<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
 header('Content-Type: application/xhtml+xml');
 echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
}
?>

请记住,如果 IE8 看到 XML 声明,它将以怪异模式呈现,尽管截至 2016 年这是一个有争议的问题,因为它不再是值得支持的浏览器,除非您作为专门处理该浏览器的专家获得报酬。

我的整个平台使用 XHTML5,它大大提高了标准、开发时间和技能。总是质疑那些反对做需要更多技能的事情的人的诚信,这就是为什么说一毛钱一打存在的原因。


如果您正在寻找一种快速适应 XML 解析器使用的方法,尽管没有时间替换数十个或数百个<br>示例,我强烈建议您考虑Advanced Find and Replace。选择一个目录、一种或多种文件类型(例如*.php;*.css;*.xml)和您要查找的代码,然后选择要替换的内容。此外,它实际上运行得更快,通过 Wine 模拟 Linux 的本机grep命令,而且非常便宜。不过,请注意如何进行大规模查找和替换,代码的空白越严格,您的情况就会越好,并且总是首先备份!

于 2016-04-27T01:42:45.903 回答