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

时间:2016-05-30 22:35:16

标签: 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?

2 个答案:

答案 0 :(得分:4)

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

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

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

这就是为什么HTML5只有一个doctype。这是你的例子中的第二个。

<!DOCTYPE html>
另一方面,HTML4.0.1有三个doctypes

严格:此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严格:此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">

答案 1 :(得分:0)

DOCTYPE对您的影响当然取决于用于任何给定页面布局的技术。因此,如果您使用&lt; table&gt; s作为主框架来设计IE4,则不会遇到很多问题。但是,如果您使用CSS进行布局控制并且需要可靠地控制页面中各种元素的位置,则会遇到跨浏览器兼容性问题。其中最值得注意的是我之前提到的旧版Internet Explorer中的非标准盒模型测量。