- 浏览: 793871 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (417)
- ASP.NET MVC (18)
- WEB基础 (24)
- 数据库 (69)
- iPhone (20)
- JQuery (3)
- Android (21)
- UML (8)
- C# (32)
- 移动技术 (19)
- 条码/RFID (6)
- MAC (8)
- VSS/SVN (6)
- 开卷有益 (4)
- 应用软件 (1)
- 软件工程 (1)
- java/Eclipse/tomcat (61)
- 英语学习 (2)
- 综合 (16)
- SharePoint (7)
- linux (42)
- Solaris/Unix (38)
- weblogic (12)
- c/c++ (42)
- 云 (1)
- sqlite (1)
- FTp (2)
- 项目管理 (2)
- webservice (1)
- apache (4)
- javascript (3)
- Spring/Struts/Mybatis/Hibernate (4)
- 航空业务 (1)
- 测试 (6)
- BPM (1)
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
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,否则效果会有差异。
经典论坛讨论:
http://bbs.blueidea.com/thread-2792311-1-1.html
发表评论
-
ie firefox 读取文件
2013-02-21 11:09 0<!DOCTYPE HTML PUBLIC " ... -
js读写文件
2013-02-21 10:49 808<script> /* object.Open ... -
sessionStorage 、localStorage 和 cookie 之间的区别(转)
2013-02-20 16:00 922sessionStorage 和 localStorage ... -
html5本地存储 localStorage
2013-02-20 15:45 845<!DOCTYPE HTML> <html& ... -
html5本地存储-留言板
2013-02-20 15:44 4408<!DOCTYPE HTML> <html& ... -
myinfo
2013-02-20 09:40 0https://www.ibm.com/developerwo ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2013-01-21 15:05 790http://www.cnblogs.com/JesseV/a ... -
通过js闭包实现减少前后台交互的次数
2013-01-06 10:49 0应用场景:鼠标移到超链接时,会显示tip,而tip的内容来自后 ... -
js闭包的理解(转)
2013-01-06 10:38 897转自:http://www.cnblogs.com ... -
js闭包
2013-01-06 10:21 858http://www.jb51.net/article/241 ... -
js date对象
2012-12-28 14:28 1065Date 对象用于处理日期和时间。创建 Date 对象的语法: ... -
JS Date格式化为yyyy-MM-dd类字符串
2012-12-28 14:27 1192Date.prototype.format = functio ... -
js数组(转)
2012-12-11 11:38 1022js数组的操作 用 js有很久了,但都没有深究过js的数组形式 ... -
js使用
2012-11-29 10:53 9751. js split <script language ... -
.NET 的 WCF 和 WebService 有什么区别?(转载)
2012-05-07 10:28 1792<h2> <a id="cb ... -
在线文档显示组件 FlexPaper
2011-12-19 14:24 1126FlexPaper 是一个开源轻量级的在浏览器上显示各种 ... -
Document Type Declaration
2011-12-08 15:22 2632Document Type Declaration From ... -
XHTML 和 MIME 类型
2011-12-09 09:12 1133XHTML 和 MIME 类型 - 使用Web 标 ... -
xhtml DTD
2011-11-30 16:18 852XHTML 定义了三种文件类型声明。 使用最普遍的是 ... -
IIS配置
2011-11-17 13:18 847http://bbs.51cto.com/thread-488 ...
相关推荐
DOCTYPE>标签的定义和用法。 准确的说,<!DOCTYPE>并不是HTML标签,它声明web浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中,<!DOCTYPE> 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了...
DOCTYPE文档类型声明是HTML或XHTML文档中的一个重要组成部分,它位于文档的最顶部,用于告知浏览器文档遵循的规范和标准。DOCTYPE声明不是HTML或XHTML的一部分,而是引用了一个外部的文档类型定义(DTD),这个DTD...
DOCTYPE>`标签没有闭合标签,即它不需要以`>`结束。 DOCTYPE声明的格式通常如下: ```html <!DOCTYPE 类型 PUBLIC "公开标识符" "系统标识符"> ``` 其中: - `类型`:指明文档遵循的HTML或XHTML规范。 - `公开...
DOCTYPE声明的语法通常是这样的: ```html <!DOCTYPE html PUBLIC "public_identifier" "URL"> ``` 这里的`public_identifier`是公开标识符,`URL`是可选的,指向Dialect Type Definition (DTD)的在线位置,DTD是一...
以下是一些常见的DOCTYPE声明: 1. **HTML 4.01**: - **Transitional**: `<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">` - **Strict**: `<!...
如果不写DOCTYPE或者写错DOCTYPE,浏览器可能会自动进入quirks mode。在这种模式下,一些CSS样式可能不会按预期工作,页面布局可能会混乱,JavaScript的行为也可能与标准模式下不同。因此,为了确保跨浏览器的一致性...
1. **DOCTYPE声明**:`<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">` 这行代码定义了文档类型为XHTML 1.0 Transitional,这是一种...
DOCTYPE>`声明会导致浏览器进入不同的渲染模式,如quirks mode(兼容模式)和standards mode(标准模式)。在标准模式下,浏览器会遵循W3C的标准,提供更一致的跨平台表现。 在实际开发中,选择HTML还是XHTML取决于...
HTML的!DOCTYPE是什么意思.zip
标题中的"DOCTYPE.rar_page"可能是指一个HTML页面的DOCTYPE声明被存入了一个名为"DOCTYPE.rar"的压缩文件中,而".rar_page"可能是某种特定的文件结构或者命名约定,表示这是压缩包内的一个页面文件。描述提到的是...
在这个例子中,使用的是HTML5的DOCTYPE声明, δηλDOCTYPE html。 HTML文档头(Head) HTML文档头是HTML文档的开始部分,用于存放一些元数据,例如标题、关键词、描述等信息。HTML文档头的主要内容包括: * ...
在NCC(可能是某种特定的软件开发环境或框架)中,开发者经常遇到各种技术挑战,其中之一就是在尝试打开或处理UPM(可能是一种特定格式的配置文件或者模块定义文件)时,遇到“DOCTYPE 根 null”错误。这个错误通常...
1. **DOCTYPE声明**: `<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">` 这个声明定义了文档遵循的HTML版本和模式。在这里,它指定了HTML4.01过渡版,这表明文档可能包含HTML4.01和一些HTML5元素...
标题中的“DOCTYPE html-爱心代码.docx”表明这是一个关于HTML的文档,具体是创建一个爱心图形的代码示例。描述中的“我颜色设的两个不一样,有需要的家人们可以自己去改成相同颜色的就好了”提示了代码中可能涉及两...
DOCTYPE声明位于文档的开头,即`<html>`标签之前,其主要作用是确保浏览器以正确的标准模式解析和渲染页面。 DOCTYPE标签的语法通常如下: ```html <!DOCTYPE html PUBLIC "public_identifier" "URL"> ``` 其中,...
为了避免这种情况,开发者通常会在文档开头使用DOCTYPE声明,以指定浏览器应使用哪种标准进行解析。例如,XHTML 1.0 Transitional的DOCTYPE声明如下: ```html <!DOCTYPE ...
关于DOCTYPE缩写的一个额外注意点是:尽管可以使用缩写形式来简化代码,但开发者在实际工作中应始终遵循项目或团队编码规范,因为有些组织或项目可能有特定的DOCTYPE声明要求。此外,在进行老旧代码重构或者维护旧...
DOCTYPE HTML.html
DOCTYPE html.xml
Doctype html.txt