如何获取当前没有 doctype 声明的 HTML 站点并使其符合 W3C?
5 回答
首先:考虑一下为什么需要使其符合 W3C。如果只是为了小徽章,那就不值得了。
如果您确实有充分的理由(并且有很多),那么这就是我要做的:
首先选择一个文档类型。从它的声音来看,HTML 4.0 可能是要走的路。通过验证器运行您的页面,然后查看它为您提供的错误报告。一个一个地检查它,修复每个错误。通常,错误报告会告诉您大量有关如何解决每个问题的信息,并为您提供规范的相关链接。
注意:如果没有 DOCTYPE, IE 将不会在标准模式下呈现您的页面。
您将需要确定您想要遵守的文档类型,然后开始着手使站点对其进行验证。我建议从 XHTML Transitional 之类的东西开始。
这很可能会形成大量的努力,可能没有真正的收获,并且可能涉及重构大量内容或进行软件更改,因此请确保在开始之前您愿意接受。如果该站点特别糟糕(例如,到处都是字体标签,没有使用 CSS),那么您很可能会发现它的麻烦多于其价值。
我倾向于不理会任何工作令人满意的页面。如果它没有损坏,请不要修复它。但是,任何需要重新设计或麻烦修改的页面我都会使用现代技术重新编写。
主要问题是,当您向页面添加 doctype 时,IE 6 及更高版本开始呈现页面的方式明显不同:它使用标准模式而不是 Quirks 模式,并且盒子模型不同。因此,即使页面编码良好,添加此 doctype 也可以完全改变非常流行的浏览器中的呈现。这意味着至少要花时间修理东西。
至于应该使用哪种 doctype,我推荐 HTML 4.01 transitional。XHTML 不值得努力。大多数开发人员都不太了解真正的 XHTML,如果您的代码中有一个错误,则整个页面可能不会显示;如果您将 XHTML 作为 HTML 提供,那么您也可以只提供 HTML。HTML 不够好的原因并不多。
选择文档类型后,您可以修复 HTML 和 CSS,以使页面更小、更干净、更易于维护。这是一个复杂的问题,无法在快速帖子中完全解释,但归结为确保您的布局是使用 DIVS 而不是 TABLES 等完成的。考虑将所有 CSS 放在 <style> 标记或外部 CSS文件; 我个人认为任何 HTML 属性(如高度、宽度或内联样式属性)都是错误。例如:
<div height="100" width="100" style="border: 1px solid red"></div>
真的应该是:
<head>
<style> .adbox { height: 100px; width: 100px; border: 1px solid red; } </style>
</head>
<body>
<div class="adbox"></div>
</body>
我的建议的主要关键是建设性地花费你的精力;如果工作正常,您可能不需要更改它。这些变化带来了好处,但它们也有很高的成本,所以除非你愿意为此付出代价,否则不要盲目地尝试实现某件事。简单地说“W3C 验证”并不是一个好的目标。而是专注于易于维护、良好的内容、小文件大小、屏幕阅读器的可访问性等。
基于对问题的误解,我丢弃了我之前的答案...
基本答案是使用HTML Tidy,它应该有助于使其兼容。