我正在开发一个据称是“XHTML 1.0”的大型网站,但它与有效的 XHTML 相去甚远,更不用说有效的 HTML。
我们被迫支持 IE7,而无效代码导致许多地方出现无法修复的问题。我已经研究过这个问题,解决它的唯一方法是让 IE7 以标准模式呈现网站。
由于让网站验证已经是一项艰巨的任务,我想我不妨建议更新为 HTML5 文档类型。
但由于我们的主要要求是支持 IE7,并且它以 IE7 标准模式呈现页面,我想知道是否最好验证为 HTML 4.01 过渡文档类型或其他一些文档类型。
提前致谢。
我正在开发一个据称是“XHTML 1.0”的大型网站,但它与有效的 XHTML 相去甚远,更不用说有效的 HTML。
我们被迫支持 IE7,而无效代码导致许多地方出现无法修复的问题。我已经研究过这个问题,解决它的唯一方法是让 IE7 以标准模式呈现网站。
由于让网站验证已经是一项艰巨的任务,我想我不妨建议更新为 HTML5 文档类型。
但由于我们的主要要求是支持 IE7,并且它以 IE7 标准模式呈现页面,我想知道是否最好验证为 HTML 4.01 过渡文档类型或其他一些文档类型。
提前致谢。
就让 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,但同时它也不是灵丹妙药。
就个人而言,我会选择 XHTML Strict。您可以在此处了解有关以基于 doctype 的模式呈现的浏览器的更多信息。但是,您对 IE7 和任何严格的文档类型(包括 HTML 和 XHTML)都很清楚。
进一步研究,似乎最容易验证到 XHTML 1.0。我认为验证到 HTML5 会更简单,但它实际上使用 HTML5 文档类型比 XHTML 文档类型引发更多验证错误。这是因为 HTML5 不允许大量使用中的表示性 HTML 属性。奇怪的是,HTML5 还可以捕获表格行中的列太少等问题,而 XHTML 验证似乎并不在意。
所以一般来说,看起来答案就是坚持使用原始文档类型。切换文档类型并不能解决任何无效代码并带来额外的无效性。