• 【兼容】DOCTYPE声明


    我们浏览的大多数网站,或者用Dreamweaver创建一个新的网页文档时,源码的顶部都会有DOCTYPE声明,但是很多人没有注意它,甚至在创作时 候直接将它删掉,其实这往往就是噩梦的开始,很有可能会引发一系列的问题。我在制作过程中就遇到很多因为没有加DOCTYPE声明而引发的奇怪问题,这些 问题说都说不清楚。就拿行内元素来说,在加有DOCTYPE声明的文档中,它是没有高度和宽度的(这个是正确的),但不加DOCTYPE声明,给它定义高 度和宽度是有效的。
    不加上DOCTYPE声明,那么各个浏览器会以各自默认的DOCTYPE解释文档,这就出现了差异,不兼容。所以DOCTYPE声明是很重要的。下面具体认识一下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、W3C)
    - 类型:指定公开文本类,即所引用的对象类型。 DTD 默认。DTD。
    - 标签:指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。
    - 定义:指定文档类型定义。
    1、Frameset 框架集文档;
    2、Strict 排除所有 W3C 专家希望逐步淘汰的代表性属性和元素,因为样式表已经很完善了;
    3、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,否则效果会有差异。

  • 相关阅读:
    PHP中文字符串编码转换
    html表单样式, table隔行高亮, 长字符串自动换行
    PHP带重试功能的curl
    redis+crontab+php异步处理任务
    emoji表情初探
    iptables进行DNAT(目标地址转换)
    Linux作为路由器(一)
    nginx正向代理http(一)
    Linux Shell sort排序常用命令(转载)
    Zabbix添加自定义监控项(一)
  • 原文地址:https://www.cnblogs.com/jzm17173/p/2496529.html
Copyright © 2020-2023  润新知