即使您的文档可能未针对该doc类型进行验证,更改DOC类型定义时是否有任何含义?

时间:2011-08-12 01:58:23

标签: html xhtml doctype

目前我们有以下DOC类型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">

有一些举措可以改为以下DOC类型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 TRANSITIONAL//EN"  >

该论点是针对跨浏览器兼容性实施严格的W3C标准,我的问题是,如果我们采用新的DOC类型,

  1. 在不将仍然在4.0.1 HTML定义中的部分代码更改为XHTML 1.0定义的情况下,它是否有用?

  2. 将更改为新的DOC类型定义导致我现有的JSP / HTML中断(假设那些完全符合4.0.1但未针对1.0 XHTML进行测试的那些)?

1 个答案:

答案 0 :(得分:1)

我假设你实际上意味着以下作为新的doctype:

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

从功能上讲,您的JSP / HTML不会中断。现代的webbrowser足够宽容,它会在需要时关闭打开的标签,它会接受未指定的属性。同时你应该考虑修复它们,以便它尽可能地针对新的doctype进行验证。

然而,CSS中指定的look'n'feel可能会出现主要问题。您的旧文档类型会在quirksmode中推送浏览器,其中显示MSIE中非常严重的box model bug。有了这个错误,MSIE会将元素的paddingborder记入元素的width。因此,如果您更改此doctype,您将只看到MSIE中的更改。

如果您的网站是根据网络标准在普通网络浏览器上设计的(即,它是专为Firefox,Chrome,Safari等设计的),那么您无需担心。它只会像MSIE那样看起来像是有意的,这只是一个优势。

但如果您的网站是为MSIE设计的,因此忽略了Web标准,那么您将不得不在CSS中进行大量更改(主要是宽度/填充/边框/边距),以便在MSIE中看起来与intented。您还将获得额外的优势,即它现在可以在普通浏览器上正常显示。

关于doctype选择,这将是主观的,但如果你需要我的意见,那么请阅读以下答案: