<!DOCTYPE> 标签的定义与使用

<!DOCTYPE>标签的定义   

    

  <!DOCTYPE> 声明位于文档中最前面的位置,处于<html>标签之前。<!DOCTYPE> 声明不是一个HTML标签,它是告知Web浏览器该页面使用了哪种HTML版本(规范),浏览器用此版本(规范)对该文档进行解析,渲染
       <!DOCTYPE> 可声明的 DTD 有三种:分别是严格版本(strict)过渡版本(transitional)、以及基于框架的版本(frameset),若文档不遵循其DTD规范,则此文档中的代码不但不能通过代码校验,并且有可能无法正常显示。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <!--HTML5示例-->
 5         <meta charset="utf-8"> 
 6         <title>文档标题</title>
 7     </head> 
 8     <body>
 9         文档内容......
10     </body>
11 </html>

<!DOCTYPE>标签的使用

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

  在以上声明中,此文档的根元素被声明为HTML,他在公共标识符被定义为 “-//W3C//DTD HTML 4.01//EN” 的DTD中进行了定义,浏览器会明白如何寻找与该公共标识符匹配的DTD,如果找不到,浏览器将会使用公共标识符后面的 URL 来寻找DTD的位置。

  -/+:"-“表示组织名称未注册,Internet 工程任务组(IETF)和万维网协会(W3C)并非注册的 ISO 组织,”+"表示组织名称已注册;
  DTD:指公开文本类,即所用的对象类型。默认为DTD;
  HTML:公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认为HTML;
  URL: 指定所引用对象的位置。
 

HTML的文档类型

HTML4.01 的文档类型

HTML 4.01 规定了三种文档类型:StrictTransitional 以及 Frameset

  严格版本(strict) 的DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。

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


  过渡版本(transitional) 的DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(eg:font ),框架集是不允许的。

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


  基于框架的版本(frameset) 的DTD 与 HTML 4.01 Transitional 相同,但是允许使用框架集内容。

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

HTML5 的文档类型

HTML4.01 中的DOCTYPE需要对 DTD 进行引用,因为 HTML4.01 基于 SGML。而 HTML5 不基于SGML,因此不需要对 DTD 进行引用,但是需要DOCTYPE来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

1 <!DOCTYPE html>

XHTML1.0 的文档类型

XHTML 1.0 规定了三种文档类型:StrictTransitional 以及 Frameset

  严格版本(strict) 的DTD 包含所有 HTML 元素和属性,但不包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。

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


  过渡版本(transitional) 的DTD 包含所有 HTML 元素和属性,包括表象或过时的元素(如 font )。框架集是不允许的。结构必须按标准格式的 XML 进行书写。

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


  基于框架的版本(frameset) 的DTD 与 XHTML 1.0 Transitional 相同,但是允许使用框架集内容。

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

XHTML 1.1 的文档类型

  该DTD 与 XHTML 1.0 Strict 相同,但是允许您添加模块(例如为东亚语言提供 ruby 支持)。

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

三种类型文档的区别

       严格版本:
              它将文档结构与表现形式实现了更高的分离,所以,页面的外观要用CSS来控制。

       过渡版本:
              它包含了HTML4.01版本的全部标记,方便网页开发者顺利地从HTML的使用过渡到XHTML

       基于框架的版本:
              它使用<frameset>以框架的形式将网页分为多个文档。W3C是推荐使用XHTML的,而且使用XHTML的话可以更顺利地通过W3C对网页页面的验证

注意

       1. 页面引用哪种规范就要用那种规范允许或推荐使用的标签。

       2. 如果没有指定有效的DOCTYPE声明,大多数浏览器都会使用一个内建的默认dtd。在这种情况下, 浏览器会用内建的dtd来试着显示你所指定的标记,这将违背HTML规范的意义,不建议使用这种方式。
       3. 当doctype申明缺失或者格式不正确时,文档会以兼容模式呈现。
           标准模式:排版以及js运行模式都是以浏览器支持的最高标准运行;
           兼容模式:页面以宽松的向后兼容(向老版本兼容)方式显示,模拟老浏览器的行为防止(老)站点无法正常工作。

其他

       <!DOCTYPE html> 是 HTML5 中唯一的 DOCTYPE,也被视作将网页 “升级” 到 HTML5 的第一步。很多国外网站的 和 之间都会有一段注释,如:

1 <!—[if IE 6 ]><html class="ie ielt9 ielt8 ielt7 ie6" lang="en-US"><![endif]—>
2 <!—[if IE 7 ]><html class="ie ielt9 ielt8 ie7" lang="en-US"><![endif]—>
3 <!—[if IE 8 ]><html class="ie ielt9 ie8" lang="en-US"><![endif]—>
4 <!—[if IE 9 ]><html class="ie ie9" lang="en-US"><![endif]—>
5 <!—[if (gt IE 9)|!(IE)]><!—><html lang="en-US"><!—<![endif]—>

       该代码作用于 css,来写一些针对 IE 各版本的样式差异。先判断用户用的哪个 IE 版本,然后在标签上加上该版本的 class,这样可以方便 hack。
css 文件是这样写的:

1 .ie6 xxx {};
2 .ie7 xxx {};

       这是目前最好的 hack 方式之一。

猜你喜欢

转载自www.cnblogs.com/wbyang/p/11530636.html
今日推荐