添加doctype没有删除当前功能

时间:2010-09-07 17:39:05

标签: html validation w3c-validation

我不得不重新调整一些旧代码用于繁忙的工作,虽然代码QA很好,但事实证明没有声明doctype。当我添加doctype时,它会破坏IE中的设计。理想情况下,我可以声明在不存在时假定的任何doctype,但不知道是否可能。有没有办法可以声明一个doctype而不用改变任何doctype声明的页面创建的行为?

3 个答案:

答案 0 :(得分:1)

如果没有doctype,IE将在quirks mode中显示该页面。要使用doctype保持IE处于怪癖模式,您可以在doctype之前添加注释(<!-- -->)。

编辑:如果只是IE6导致问题,XML prolog(<?xml version="1.0" encoding="utf-8"?>)会将其保持在怪异模式。

编辑2:实际上lots of doctypes会使IE处于怪癖模式。您应该能够找到一个可以验证的。

答案 1 :(得分:0)

这是不可能的,因为它会将怪癖模式改为标准模式(假设您使用类似XHTML Transitional,HTML 4 Strict或HTML 5)并且存在相当多的差异,尤其是IE。你必须解决问题或雇用其他人。

答案 2 :(得分:0)

之前我一直处于类似情况。我建议您在执行此操作时通过HTML验证工具运行HTML。我最喜欢的是这个:

http://validator.w3.org/

如果您需要进行身份验证或使用某种其他机制来访问该页面(并且不能让该站点直接访问您的站点),还有一个firefox插件。

如果您描述的'功能'实际上是IE的许多未记录功能之一(错误),那么您将无法使您的HTML标准符合并继续运行。您可能拥有许多符合标准的非标准代码,而IE特定的错误处理使您的页面功能完全正常。不同的浏览器以不同的方式处理错误条件(因为根据定义,错误条件超出了文档类型的范围)。

重申一下,尝试让你的HTML通过某种验证,然后担心添加功能。我的经验告诉我,错误条件通常会导致您所描述的这类问题。

这是我在Web开发中遇到的第一条规则。该页面需要验证某些特定的doctype。

祝你好运!

-Brian J. Stinar -