11

我正在重构一个 .Net Web 应用程序,它位于

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 

现在的方法只是瞄准明星并选择最新的文档类型,因为它是最新的,我想做出更明智的选择并针对特定的文档类型,并且有充分的理由。

存在类似的问题,但现在答案可能已经过时。

标准和怪癖模式之间有什么区别,优点和缺点,我可能会遇到不同设置的文档类型的一些怪癖?

有人告诉我,XHTML doctype 比集成 AJAX 更可取,因为 UpadtePanel 对其进行序列化并且这样做需要有一个 XHTML do 类型,这在多大程度上是正确的?

对于浏览器的兼容性,浏览器在 DOCTYPE 方面的发展方向是什么,有共同的趋势还是不同?

4

5 回答 5

16

HTML5 文档类型,即

<!DOCTYPE html>

XHTML 作为一个标准在很大程度上已经死了,并且在大多数情况下从未正确实现过。

于 2010-07-14T20:09:08.943 回答
4

新事物是 HTML 5。

<!DOCTYPE html>是你用来指定它的。而已。没有 DTD 名称或 URL 或其他任何内容。

如果您正在使用喜欢 XML 的东西,例如 .net,那么您可能想要使用 XHTML。但不要出于任何其他原因这样做;XHTML 作为一种标准从来没有真正流行过,或者至少它几乎从来没有被正确使用过。

于 2010-07-14T20:10:08.090 回答
4

任何文档类型:

  • HTML 4.01 或 XHTML 1.0
  • 严格或过渡

作为 html(不是 html+xml)应该没问题。没有更好的文档类型,你只需要选择一个满足你的需求,然后遵守它的规则。

  • 避免使用 Frameset,但如果必须,请使用 title 属性向屏幕阅读器用户描述每个框架的角色(与 iframe 顺便说一句)。
  • Quirks 模式(无 Doctype)是一个 PITA,不惜一切代价避免它。这在 8 年前还可以。
  • 除非您提供 html+xml 服务,否则没有 XML 序言(祝您好运!如果您在不需要时喜欢复杂的事情,那是您的选择)
  • 如果您被迫使用严格模式(target="_blank"例如)中被禁止的属性,而不是使用过渡模式:这就是创建它的原因!并且请向您的用户表明该链接将在新页面中打开,无论是在您的链接文本中还是在其标题中。从可访问性的角度来看,这很重要。

HTML 5是下一件大事,我们正在等待它,但只要它不能在所有浏览器中工作(我的意思是没有 JS 的 IE),就不建议在“严肃”的公共网站中使用它。还是草稿?如果它的整个部分在几个月内被重写怎么办?
我的网络代理将它用于其网站,但我们不会很快在客户网站上使用它:它太早了。

旁注:我经常看到诸如“ HTML5 和 CSS3 中的现代网站”之类的流行语,暗示CSS3是为 HTML 5 制作的。CSS3 与 HTML5 无关,并且已经可以使用,只要它在旧浏览器上优雅地降级即可。
您可以使用 CSS2.1 或 HTML4.01 过渡设计 HTML5,使用仅适用于 webkit nightlies 的最新 CSS3 动画,没问题。

于 2010-07-14T20:53:58.270 回答
1

无论您选择什么,请确保您的 MIME-Type 与您的 DOCTYPE 兼容

浏览器将使用 MIME-Type(HTTP Header ContentType)来确定如何处理您的页面。例如:作为 ContentType 的 XHTML 1.1 Strict 的 DOCTYPEText\HTML被解析为 HTML。

DOCTYPE 很重要,但如果使用了错误的 ContentType,则在很大程度上无关紧要。

于 2010-07-15T20:48:57.687 回答
1

浏览器实际上从未使用 DOCTYPE 来确定文档的标记语言(它们使用 HTTP Content-type 代替),因此您选择的 DOCTYPE 从来没有太大的相关性——只要您使用某种描述的有效 DOCTYPE即可。无论您选择哪个都取决于您。

如果您正在编写 HTML,<!DOCTYPE html>它是最短的类型,并将所有浏览器置于标准模式(这是您想要的)。

如果您正在编写 XHTML,那么<!DOCTYPE html>它也是完全合法的(XHTML 实际上根本不需要 DOCTYPE,因为它完全依赖于 HTTP 内容类型,但是为了可移植性而放入 DOCTYPE 并没有什么坏处。

不要使用<!doctype html>- 虽然这在技术上是有效的 HTML,但它是无效的 XHTML,因此如果您尝试将页面解析为 XML,则会中断。


略略过时的旁注:这里的一些人评论说 XHTML 是一个“死”的标准——这是错误的。XHTML 已集成到即将到来的 HTML5 规范中。该规范的标题是“ HTML5:HTML 和XHTML的词汇表和相关 API

看:

于 2010-07-15T14:35:39.130 回答