`

HTML <!DOCTYPE> 标签 伤不起呀,伤不起

阅读更多
上午调页面的时候,死活是在IE和FF下面不兼容,在FF下面好好的,到了IE下面就乱的不行。
最后终于发现,是顺手把页面的<!DOCTYPE> 给删除了,才导致了上面的问题。伤不起啊,伤不起。

从网上找来一篇文章:
原文:http://www.blueidea.com/tech/web/2007/5172.asp


引用

DOCTYPE不可怕,但把它拿走,会让你怕了又怕。

最近在蓝色理想转悠,发现很多朋友提出有关DIV+CSS排版问题,以及IE与FF的兼容问题。怎么问的都有,结果就是一个——显示很奇怪,很难调整。我们浏览的大多数网站,或者用Dreamweaver创建一个新的网页文档时,源码的顶部都会有DocType声明,但是很多人没有注意它,甚至在创作时候直接将它删掉,其实这往往就是噩梦的开始。在遵循标准的任何Web文档中,DOCTYPE都是一项必需的元素。它会影响代码验证,并决定了浏览器最终如何显示你的web文档。为了避免DOCTYPE的问题重复出现,我根据手头的资料整理了这篇文档,以备自己及有兴趣的朋友参考。

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

一、什么是DOCTYPE

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

二、DOCTYPE的规则

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

以下是从手册上摘抄的规则:

语法:

HTML  顶级元素  可用性 "注册//组织//类型 标签//定义  语言""URL"

可能值:

- 顶级元素:指定 DTD 中声明的顶级元素类型。这与声明的 SGML 文档类型相对应。 HTML 默认。HTML。
- 可用性:指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。 PUBLIC 默认。可公开访问的对象。SYSTEM 系统资源,如本地文件或 URL。
- 注册:指定组织是否由国际标准化组织(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)。这里分别介绍如下。

1.过渡的

一种要求不很严格的DTD,允许在页面中使用HTML4.01的标识(符合xhtml语法标准)。过渡的DTD的写法如下:

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

2.严格的

一种要求严格的DTD,不允许使用任何表现层的标识和属性,例如<br/>等。严格的DTD的写法如下:

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

3.框架的

一种专门针对框架页面所使用的DTD,当页面中含有框架元素时,就要采用这种DTD。框架的DTD的写法如下:

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

使用严格的DTD来制作页面,当然是最理想的方式。但是,对于没有深入了解Web标准的网页设计者,比较合适的是使用过渡的DTD。因为这种DTD还允许使用表现层的标识、元素和属性,比较适合大多数网页制作人员。

四、需要注意的问题

没什么特别的,就是一定要将DOCTYPE声明放在XHTML文档的顶部,上面哪怕多个HTML注释标记都不行。

最好示例代码也加上DOCTYPE,否则效果会有差异。
分享到:
评论

相关推荐

    HTML !DOCTYPE 标签 声明HTML版本

    DOCTYPE&gt;并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,&lt;!DOCTYPE&gt; 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现...

    HTML和XHTML的联系与区别,文档类型<!DOCTYPE>

    1. **语法严格性**:XHTML的语法更严格,要求所有元素必须正确关闭(除了少数自闭合元素如`&lt;img&gt;`和`&lt;br&gt;`),而HTML则相对宽松,可以省略一些元素的结束标签。 2. **元素大小写敏感**:在XHTML中,元素和属性名是...

    文章配套网页源代码-HTML <!DOCTYPE> 声明

    博客文章: 关于HTML中的 &lt;!DOCTYPE&gt; 声明 文章配套示例HTML源代码 内容说明:DOCTYPE是Document Type(文档类型)的简写,要想制作符合标准的HTML页面,一个必不可少的关键组成部分就是DOCTYPE声明。

    网页 DOCTYPE html标签的作用1

    这个声明位于HTML文档的开头,且必须在 `&lt;html&gt;` 标签之前。 `&lt;!DOCTYPE html&gt;` 是HTML5规范中的声明方式,它表明当前文档是一个符合HTML5标准的网页。在HTML5之前,不同的DOCTYPE声明对应着不同的HTML或XHTML版本...

    HTML !DOCTYPE 标签.docx

    DOCTYPE&gt;`标签是文档类型声明,它在HTML或XHTML文档的开头,用于告诉浏览器文档遵循的HTML或XHTML规范。这个声明非常重要,因为它会影响浏览器如何解析和渲染页面内容。`&lt;!DOCTYPE&gt;`标签没有闭合标签,即它不需要以`...

    HTML 语法大全!超级精炼<一点通>

    &lt;attribute&gt; 以对象的形式代表了 HTML 元素的标签属性或属性。 &lt;B&gt; 指定文本应以粗体渲染。 &lt;base&gt; 指定一个显示 URL 用于解析对于外部源的链接和引用,如图像和样式表。 &lt;baseFont&gt; 设置渲染文本时作为缺省字体的...

    超炫酷代码,HTML格式

    例如,&lt;a&gt;标签用于创建可点击的链接,它的href属性指定目标URL,而文字则包含在&lt;&gt;和&lt;/a&gt;之间。图片标签&lt;img&gt;的src属性指定了图片的路径,alt属性提供了当图片无法显示时的替代文本。 HTML还支持表格(&lt;table&gt;)、表单...

    index.html

    &lt;title&gt;html基本结构&lt;/title&gt; &lt;/head&gt; &lt;!-- 文档的主体标签:html的所有内容都要写在里面 --&gt; &lt;body&gt; 各人有各人理想的乐园,有自己所乐于安享的世界, 朝自己所乐于追求的方向去追求,就是你一生的道路, ...

    HTML+CSS+JavaScript 400源码套装.rar

    HTML标签是由尖括号包围的关键字,比如&lt;html&gt;,HTML标签通常是成对出现的,比如&lt;b&gt;&lt;/b&gt;,标签对中的第一个标签为开始标签,第二个标签为结束标签,开始标签和结束标签也被称为开放标签和闭合标签 HTML注释: &lt;!–...

    HTML标签大全

    DOCTYPE&gt; 文档类型 &lt;html&gt;文档 &lt;body&gt;文档主体 &lt;h1&gt; to &lt;h6&gt; HTML 标题 &lt;p&gt;段落 &lt;br&gt;换行 &lt;hr&gt;水平线 &lt;!--...--&gt;注释 --文本 &lt;b&gt;粗体文本 &lt;font&gt;不赞成用。文本字体、尺寸和颜色 &lt;i&gt;斜体文本 &lt;em&gt;强调文本 &lt;big&gt;大...

    HTML初步学习,笔记记录

    HTML标签是由尖括号包围的关键词,比如&lt;html&gt;。 HTML标签通常是成对出现的,第一个标签是开始标签,第二个标签是结束标签。 3. 初始化项目 在WebStorm软件中,可以右键点击项目名称,选择New HTML File,命名为...

    web开发设计教程,常用指令讲解,实际案例资源代码详细讲解并附注释.txt

    标签:如&lt;html&gt;、&lt;head&gt;、&lt;body&gt;、&lt;h1&gt;到&lt;h6&gt;(标题)、&lt;p&gt;(段落)、&lt;a&gt;(链接)、&lt;img&gt;(图像)等。 示例代码: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;我的网页&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;欢迎来到我的网页&lt;/...

    JavaWeb-第1章-网页开发基础

    DOCTYPE&gt;声明必须位于HTML文档的第一行,且在&lt;html&gt;标签之前。&lt;!DOCTYPE&gt;声明不是HTML标签,是一条指令,它用于向浏览器说明当前文档使用哪种HTML标准规范。如果删除&lt;!DOCTYPE&gt;声明,浏览器将根据情况决定如何显示...

    html网页制作.rar

    DOCTYPE html&gt; &lt;html lang="zh-CN"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;title&gt;我的第一个HTML页面&lt;/title&gt; &lt;!-- 这里可以链接外部...

    表格 html 表格 html 表格 html

    HTML中的表格通过`&lt;table&gt;`标签创建。此标签是一个容器,里面可以包含行(`&lt;tr&gt;`)和单元格(`&lt;td&gt;`)。表格的基本结构如下: ```html &lt;table&gt; &lt;tr&gt; &lt;td&gt;单元格内容&lt;/td&gt; &lt;td&gt;单元格内容&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td...

    以下是一个简单的HTML网页代码示例

    DOCTYPE html&gt;&lt;html&gt;&lt;head&gt; &lt;title&gt;我的网页&lt;/title&gt;&lt;/head&gt;&lt;body&gt; &lt;h1&gt;欢迎来到我的网页&lt;/h1&gt; &lt;p&gt;这是一个简单的HTML网页示例。&lt;/p&gt; &lt;ul&gt; &lt;li&gt;列表项1&lt;/li&gt; &lt;li&gt;列表项2&lt;/li&gt; &lt;li&gt;列表项3&lt;/li&gt; &lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;...

    HTML基础知识.pdf

    所谓标记就是放置在“&lt; &gt;”标记符中的编码命令,也称为HTML标签或HTML元素,本书统一称作HTML标记。 为了方便学习与理解,通常将HTML标记分为两大类,分别是“双标记”和“单标记”。 (1)双标记 双标记也称体...

    网页设计HTML代码(1).doc

    4. `&lt;p&gt;`标签用于创建段落,`&lt;br&gt;`标签用于插入换行,`&lt;blockquote&gt;`用于创建引用块,`&lt;dl&gt;`、`&lt;dt&gt;`和`&lt;dd&gt;`用于定义列表(描述列表),`&lt;ol&gt;`和`&lt;ul&gt;`以及`&lt;li&gt;`用于创建有序和无序列表,`&lt;div&gt;`是一个通用容器,...

    HTML5参考手册

    HTML5参考手册中还包含了许多其他标签的说明,例如用于定义代码的&lt;code&gt;,定义表格的&lt;caption&gt;、&lt;table&gt;、&lt;th&gt;、&lt;tr&gt;和&lt;td&gt;,定义区块的&lt;div&gt;,以及定义无序和有序列表的&lt;ul&gt;、&lt;ol&gt;和&lt;li&gt;等。 这份参考手册是学习和...

    网页设计文字与段落.ppt

    HTML提供了六级标题标签`&lt;h1&gt;`到`&lt;h6&gt;`,`&lt;h1&gt;`是最重要的标题,`&lt;h6&gt;`则是最次级的。例如: ```html &lt;h1&gt;主要标题&lt;/h1&gt; &lt;h2&gt;次要标题&lt;/h2&gt; &lt;h3&gt;子标题&lt;/h3&gt; ``` 标题标签默认左对齐,但可以通过`align`属性设置对齐...

Global site tag (gtag.js) - Google Analytics