【问题标题】:Is there any implication when changing DOC type definition even if your document may not be validated for that doc type?即使您的文档可能未针对该文档类型进行验证,更改文档类型定义时是否有任何影响?
【发布时间】:2011-10-25 11:33:33
【问题描述】:

目前我们有以下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 进行测试)?

【问题讨论】:

  • 只是想知道,为什么是 XHTML 1.0?为什么不是 HTML5?无论如何...hsivonen.iki.fi/doctype底部有一张非常漂亮的桌子。看看你当前的文档类型是什么,如果你的新文档是有效的......
  • 嗨,BalusC,我想回答这个问题,但是,我也不知道为什么不这样做。不做 HTML 5 的理由是它是未来的事情。我正在阅读您的链接,谢谢!
  • HTML5 规范本身确实还没有完成。但是对于 HTML5 文档类型的 HTML4 文档的浏览器兼容性早已为人所知。

标签: html xhtml doctype


【解决方案1】:

我假设您实际上将以下内容作为新的文档类型:

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

在功能上,您的 JSP/HTML 不会中断。现代网络浏览器足够宽容,它会在需要的地方关闭打开的标签,它会接受未指定的属性。但与此同时,您应该真正考虑修复它们,以便它尽可能多地针对新的文档类型进行 w3 验证。

但是,CSS 指定的外观可能会出现重大问题。您的旧 doctype 将浏览器推送到 quirksmode,其中显示 MSIE 中相当严重的 box model bug。有了这个错误,MSIE 将元素的paddingborder 记入元素的width。因此,如果您更改此文档类型,您只会看到 MSIE 中的更改。

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

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

至于文档类型的选择,这将是主观的,但如果您需要我的意见,请阅读以下答案:

【讨论】:

  • 嗨 BalusC,谢谢,我正在查看您的参考资料,我想提一下,我们需要保持浏览器与 IE 6 的兼容性,在这种情况下,您的第一段是否仍然有效?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 2012-08-07
  • 2011-11-29
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
相关资源
最近更新 更多