html - 这些 DOCTYPE 声明之间有什么区别?

标签 html doctype

这两个 DOCTYPE 声明有什么区别?

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

<!DOCTYPE html>

使用每种方法的后果是什么,它们如何影响 SEO?

最佳答案

在 HTML 4.01 中,<!DOCTYPE>声明是指文档类型定义 (DTD)。这是因为 HTML 4.01 是基于标准通用标记语言 (SGML) 的。

DTD 指定标记语言的规则,以便浏览器正确呈现内容。

HTML5 不基于 SGML,因此不需要引用 DTD。

这就是 HTML5 只有一种文档类型的原因。这是您示例中的第二个。

<!DOCTYPE html>

另一方面,HTML4.0.1 具有三种文档类型

严格:此 DTD 包含所有 HTML 元素和属性,但不包括表示性或弃用的元素(如字体)。不允许使用框架集。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Transitional:此 DTD 包含所有 HTML 元素和属性,包括展示元素和弃用元素(如字体)。不允许使用框架集。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

框架集:此 DTD 等同于 HTML 4.01 Transitional,但允许使用框架集内容。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 也有三种文档类型。

XHTML 1.0 Strict:此 DTD 包含所有 HTML 元素和属性,但不包括表示性或弃用的元素(如字体)。框架集是不允许的。标记还必须编写为格式正确的 XML。

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

XHTML 1.0 Transitional:此 DTD 包含所有 HTML 元素和属性,包括展示元素和弃用元素(如字体)。框架集是不允许的。标记还必须编写为格式正确的 XML。

这是你第一个例子中的那个

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

XHTML 1.0 Frameset:此 DTD 等同于 XHTML 1.0 Transitional,但允许使用框架集内容。

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

关于html - 这些 DOCTYPE 声明之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37534406/

相关文章:

javascript - 有没有办法检测何时要从 DOM 中删除 DOM 节点?

html - 我怎样才能只加载合适的 HTML 视频?

css - 行内元素行高(span)

html-email - html电子邮件的文档类型

html - WPF System.Windows.Controls.WebBrowser 不呈现链接按钮

javascript - 从文本区域提交表单

javascript - 删除 Javascript 生成的 HTML

html - 自适应 Google 广告未显示在我的网站上

javascript - Html Doctype 标签影响 javascript?

html - 使用自定义 HTML 属性的具体风险是什么?