欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

标签的定义与使用

程序员文章站 2024-01-05 23:18:16
标签的定义 声明位于文档中最前面的位置,处于标签之前。 声明不是一个HTML标签,它是告知Web浏览器该页面使用了哪种HTML版本(规范),浏览器用此版本(规范)对该文档进行解析,渲染。 可声明的 DTD ......

<!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 的第一步。很多国外网站的<!doctype><head>之间都会有一段注释,如:

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 方式之一。