新葡亰496net 新葡亰编程 不要忘了添加 doctype

不要忘了添加 doctype

原文:(可能是英文)

HTML之DocType的几种类型转载

DOCTYPE是文档类型(Document Type)的缩写,<!DOCTYPE>
元素用于声明一个页面的文档类型定义(Document Type Declaration,
即DTD)。此元素声明位于文档中的最前面的位置,处于 <html>
标签之前。通过确认页面的DTD,可以同时确定页面使用哪种W3C规范(比如 HTML
或 XHTML 规范)。

添加什么

doctype类型详细doctype的几种类型html之doctype 分类: 前端文摘 
在默认情况下,FF和IE的解释标准是不一样的,也就是说,如果一个网页没有声明DOCTYPE,它就会以默认的DOCTYPE解释下面的HTML。在同一种标准下,不同浏览器的解释模型都有所差异,如果声明标准不同,不用我说,您自己想就可以了。学习网页标准,浏览器兼容,从哪里开始您自己决定,但是,请认识DOCTYPE:

W3C规范的正确翻译应该为W3C推荐(W3C
Recommendations)。很多设计师的眼里W3C就是标准。但是许多人都是一知半解。下面列于了目前W3C规范中的HTML规范和XHTML规范,稍后会讲解HTML和XHTML的关系。

HTML 不是只有一种类型,实际上它们有:HTML 4.01 Strict, HTML 4.01
Transitional, XHTML 1.0 Strict,等等更多。所有这些 HTML
类型都在它们独自的 W3C
规范中定义,不过它也同样在机器可读语言中定义用于说明逻辑结构,HTML
元素和属性。

新葡亰,一、什么是DOCTYPE

XHTML可以看成是最新的HTML规范,是一项可从 HTML 4.01 平稳迁移的 XML
应用。W3C 把 HTML 4.01 重构为 XML 的第一个步骤,导致了 XHTML 1.0
的诞生。XHTML 1.0 依赖于 HTML 4.01 标签所提供的语义。

如此这样一个定义被称作为“Document Type Definition”,或者科称为:DTD。

DOCTYPE是Document
Type(文档类型)的简写,在页面中,用来指定页面所使用的XHTML(或者HTML)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE声明。只有确定了一个正确的DOCTYPE,XHTML里的标识和CSS才能正常生效。

规范与DTD

页面文件通过<DOCTYPE>元素声明不同的DTD,来告知浏览器当前页面符合哪种HTML或者XHTML规范。下面只列举HTML4.01和XHTML1.0两种规范相关的DTD:

HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

  • HTML Strict DTD

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

HTML Transitional DTD

Transitional DTD 可包含 W3C
所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用
HTML 的呈现特性时,请使用此类型:

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

Frameset DTD

Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body
元素之外,Frameset DTD 等同于 Transitional DTD:

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

像网页浏览器这样的工具在处理 HTML 文档时,应该知道使用的是哪一个 (X)HTML
的 DTD:这就是为什么每一个 (X)HTML 文档必须在最开头定义 DTD
声明,就像如下:

二、DOCTYPE的规则

XHTML

XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

  • XHTML Strict DTD

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

XHTML Transitional DTD

Transitional DTD 可包含 W3C
所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用
XHTML 的呈现特性时,请使用此类型:

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

XHTML Frameset DTD

当您希望使用框架时,请使用此 DTD。

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

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
   “;

DOCTYPE声明的写法遵循一定的规则,它指出阅读程序应该用什么规则集来解释文档中的标记。在Web文档的情况下,“阅读程序”通常是浏览器或者校验器这样的一个程序,“规则”则是w3c所发布的一个文档类型定义(dtd)中包含的规则。
每个dtd都包括标记、attributes、properties等内容,它们用于标记web文档的内容;此外还包括一些规则,它们规定了哪些标记能出现在其他哪些标记中。每个web建议标准(比如html
4 frameset和xhtml 1.0 transitional)都有自己的dtd。

DOCTYPE 元素语法

语法:HTML 顶级元素 可用性 “注册//组织//类型 标签//定义 语言””URL”。

顶级元素:指定 DTD 中声明的顶级元素类型。这与声明的 SGML
文档类型相对应。 默认为HTML。

可用性:指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。取值可以为PUBLIC或者SYSTEM.PUBLIC
默认。表示可公开访问的对象。SYSTEM表示系统资源,如本地文件或 URL。

注册:指定组织是否由国际标准化组织(ISO)注册。+为默认,表示组织名称已注册。-表示组织名称未注册。Internet
工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织。

组织:指定表明负责由 !DOCTYPE 声明引用的 DTD
的创建和维护的团体或组织的名称,即 OwnderID。 IETF为IETF。W3C为W3C。

类型:指定公开文本类,即所引用的对象类型。 默认为DTD。

标签:指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认为HTML。

定义:指定文档类型定义。Frameset 框架集文档。Strict 排除所有 W3C
专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了。Transitional
包含除 frameSet 元素的全部内容。

语言:指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为
ISO 639 语言代码(大写两个字母)。 EN 默认。英语。

URL:指定所引用对象的位置。

根据其语法,DTD 声明也常常简称为 “Doctype”。

注释: 标签没有结束标签! 以下是从手册上摘抄的规则:

DOCTYPE切换

现代浏览器包括不同的呈现模式,目的是既支持遵循W3C标准的网页,也支持为老式浏览器而设计的网页。其中,
Standards
(标准)模式(也就是严格呈现模式)用于呈现遵循最新标准的网页,而 Quirks
(包容)模式(也就是松散呈现模式或者兼容模式)用于呈现为传统浏览器而设计的网页。另外,注意Mozilla/Netscape
6新增了一种 Almost Standards
(近似标准)模式,用于支持为标准的某个老版本而设计的网页。

理论上,这应该是一个非常直观的切换。假如页面的<!DOCTYPE>元素指出了页面的遵循标准(比如XHTML1.0),浏览器就会切换到Standards模式。假如没有指定doctype,或者指定HTML
3.2以及更老的版本,浏览器就切换到Quirks模式。这样一来,浏览器既能正确显示遵循标准的文档,又不至于完全舍弃老式的、与标准不符的网页。
但是会有下面几种情况:

  • 丢失的URL或者相对URL
  • 形式错误的doctype
  • 过渡期的 doctype
  • 未知的 doctype

doctype切换也许是让浏览器进入正确呈现模式并正确显示网页的一种有效手段,前提是你注意到了各种浏览器的不一致,并能积极主动地避免各种问题。


语法:

XHTML使用技巧

  1. 紧跟在上面 DOCTYPE 声明之后的是一个 XHTML
    名字空间(namespace)声明,放在增强的 <html> 元素中,写法为:
  2. 由于 XHTML 1.0 页面就是合法的 XML 文档,而 XML
    对于标签和属性都是区分大小写的,为了简单起见,XHTML 1.0
    页面中所有的标签和属性都必须使用小写。
  3. 通过在 <head> 元素中添加一个 <meta>
    元素来声明页面中使用的语言。
  4. 在 XHTML 中,所有的属性都必须要加上引号。
  5. 在 XHTML 中,所有的属性都必须有值。不能像在 HTML 4.0
    中那样写:<input type=”checkbox” name=”shirt” value=”medium”
    checked>
  6. 在 XHTML
    中,所有的标签都必须关闭。关闭标签有两种方式,包含内容的标签使用结束标签关闭,空标签在后面加上空格和”/”。例如:
  7. 不要在注释内容中使用”–” 。”–” 只能使用在 XHTML
    注释的开头和结束,不能出现在注释的内容中。下面的写法都是不允许的:
  8. 把所有的特殊符号进行HTML编码。

Type)的缩写,!DOCTYPE> 元素用于声明一个页面的文档类型定义(Document
Type Declaration, 即DTD)。此元素声明位于文档中的最…

为什么

HTML  顶级元素  可用性 “注册//组织//类型标签//定义  语言””URL” 可能值:

为什么要指定 doctype,因为它定义了我们的文档究竟使用的哪一个 (X)HTML
版本,对于浏览器或其它文档处理工具来说,这是很重要的一部分信息。

– 顶级元素:指定 DTD 中声明的顶级元素类型。这与声明的 SGML
文档类型相对应。 HTML 默认。HTML。

比如:在文档中定义 doctype,允许你使用像 Markup
Validator 这样的工具检查你的 (X)HTML
语法(用以发现可能影响你的页面在不同浏览器中解释方法不同的错误)。如果这些工具不知道你的文档的类型,它们不会工作。

– 可用性:指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。
PUBLIC 默认。可公开访问的对象。SYSTEM 系统资源,如本地文件或 URL。

不过最重要的事是,在许多浏览器家庭中,doctype
声明将减少一些不必要的猜测,将启动标准的语法分析模式,这样不仅仅是加快了解析速度,更保证了前后一致性,避免因
doctype 缺少造成的严重问题。

– 注册:指定组织是否由国际标准化组织(ISO)注册。 +
默认。组织名称已注册。

– 组织名称未注册。Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的
ISO 组织。

组织:指定表明负责由 !DOCTYPE 声明引用的 DTD
的创建和维护的团体或组织的名称,即 OwnderID。 IETF IETF。 W3C W3C。

– 类型:指定公开文本类,即所引用的对象类型。 DTD 默认。DTD。


标签:指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。
HTML 默认。HTML。

– 定义:指定文档类型定义。Frameset 框架集文档。Strict 排除所有 W3C
专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了。Transitional
包含除 frameSet 元素的全部内容。


语言:指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为
ISO 639  语言代码(大写两个字母)。 EN 默认。英语。

– URL:指定所引用对象的位置
为了获得正确的DOCTYPE声明,关键就是让dtd与文档所遵循的标准对应。例如,假定文档遵循的是xhtml
1.0
strict标准,文档的doctype声明就应该引用相应的dtd。另一方面,如果doctype声明指定的是xhtml
dtd,但文档包含的是旧式风格的html标记,就是不恰当的;类似地,如果doctype声明指定的是html
dtd,但文档包含的是xhtml 1.0 strict标记,同样是不恰当的。

三、选择什么样的DOCTYPE

如上例所示,XHTML
1.0中有3种DTD(文档类型定义)声明可以选择:过渡的(Transitional)、严格的(Strict)和框架的(Frameset)。这里分别介绍如下。

标签:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图