0

我正在开发一个据称是“XHTML 1.0”的大型网站,但它与有效的 XHTML 相去甚远,更不用说有效的 HTML。

我们被迫支持 IE7,而无效代码导致许多地方出现无法修复的问题。我已经研究过这个问题,解决它的唯一方法是让 IE7 以标准模式呈现网站。

由于让网站验证已经是一项艰巨的任务,我想我不妨建议更新为 HTML5 文档类型。

但由于我们的主要要求是支持 IE7,并且它以 IE7 标准模式呈现页面,我想知道是否最好验证为 HTML 4.01 过渡文档类型或其他一些文档类型。

提前致谢。

4

3 回答 3

1

就让 IE7 以最接近标准的模式工作而言,这三种 doctype 的工作完全相同:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE html>

(请注意,前两个的 Transitional 对应物的工作明显不同)

在使严重无效的网站有效方面,所需的工作将有所不同,但数量非常相似。但是,请避免对 XHTML 1.0 进行验证,因为 IE7 无法以与验证器相同的方式解析 XHTML,因此您的有效 XHTML 确实是损坏的 HTML。

如果您愿意,确实没有任何好的技术理由可以说明您不应该迁移到 HTML5,但同时它也不是灵丹妙药。

于 2012-05-09T21:04:15.520 回答
0

就个人而言,我会选择 XHTML Strict。您可以在此处了解有关以基于 doctype 的模式呈现的浏览器的更多信息。但是,您对 IE7 和任何严格的文档类型(包括 HTML 和 XHTML)都很清楚。

于 2012-05-09T21:03:59.887 回答
0

进一步研究,似乎最容易验证到 XHTML 1.0。我认为验证到 HTML5 会更简单,但它实际上使用 HTML5 文档类型比 XHTML 文档类型引发更多验证错误。这是因为 HTML5 不允许大量使用中的表示性 HTML 属性。奇怪的是,HTML5 还可以捕获表格行中的列太少等问题,而 XHTML 验证似乎并不在意。

所以一般来说,看起来答案就是坚持使用原始文档类型。切换文档类型并不能解决任何无效代码并带来额外的无效性。

于 2012-05-15T22:29:54.330 回答