我不得不重新调整一些旧代码用于繁忙的工作,虽然代码QA很好,但事实证明没有声明doctype。当我添加doctype时,它会破坏IE中的设计。理想情况下,我可以声明在不存在时假定的任何doctype,但不知道是否可能。有没有办法可以声明一个doctype而不用改变任何doctype声明的页面创建的行为?
答案 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。我最喜欢的是这个:
如果您需要进行身份验证或使用某种其他机制来访问该页面(并且不能让该站点直接访问您的站点),还有一个firefox插件。
如果您描述的'功能'实际上是IE的许多未记录功能之一(错误),那么您将无法使您的HTML标准符合并继续运行。您可能拥有许多符合标准的非标准代码,而IE特定的错误处理使您的页面功能完全正常。不同的浏览器以不同的方式处理错误条件(因为根据定义,错误条件超出了文档类型的范围)。
重申一下,尝试让你的HTML通过某种验证,然后担心添加功能。我的经验告诉我,错误条件通常会导致您所描述的这类问题。
这是我在Web开发中遇到的第一条规则。该页面需要验证某些特定的doctype。
祝你好运!-Brian J. Stinar -