提问人:Johny P. 提问时间:4/19/2016 最后编辑:Johny P. 更新时间:2/25/2017 访问量:485
W3C 不再维护多语言标记?
W3C no longer maintains polyglot markup?
问:
W3C 已终止对多语言标记的支持。那么,我是否必须将我的网站转换为使用常规 HTML5 而不是 XHTML?他们放弃这个概念将如何影响现有站点?我想要一个完全有效的标记,如果该代码与标准冲突,我将不得不删除它。
答:
像往常一样,在评论中对XHTML进行更多的抨击,而没有任何真正理解它是什么。
- XHTML 使用 XML 解析器。
- HTML 使用 HTML 解析器。
- XML解析器很严格,它是一个对错误的容忍度很低的应用程序。
- HTML 解析器很轻松,不介意潜艇上的纱门是否打开。
您可以而且应该使用最严格的工具。在PHP的示例中,您应该始终检查变量。为什么?黑客将从表单中删除元素,提交表单,然后尝试查看服务器会发送哪些错误消息。但是,如果你降低PHP错误消息的严格性,你会认为一切都很好,很花花公子。isset
input
我看到一个人为为什么只有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 解析器的使用,但是没有时间替换数十或数百个解析器,例如,我强烈建议您考虑使用高级查找和替换。选择一个目录、一种或几种文件类型(例如)和要查找的代码,然后选择要替换的内容。此外,它实际上运行得更快,通过 Linux 的原生命令 Wine 模拟,而且非常便宜。不过,要小心你如何进行大规模的查找和替换,你的代码的空白越严格,你就会越好,并且总是先备份它!<br>
*.php;*.css;*.xml
grep
评论
application/xhtml+xml
application/xhtml+xml
评论
text/html
application/xhtml+xml
text/html
application/xhtml+xml
header
text/html