<!DOCTYPE html PUBLIC……>的组成解释「建议收藏」

<!DOCTYPE html PUBLIC……>的组成解释「建议收藏」DOCTYPE是documenttype(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。DOCTYPE声明开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。查看很多使用XHTML

大家好,又见面了,我是你们的朋友全栈君。

DOCTYPE是document type(文档类型)的简写,在web设计中用来说明你用的XHTML或者HTML是什么版本。

要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

DOCTYPE声明

开始制作符合标准的站点,第一件事情就是声明符合自己需要的DOCTYPE。

查看很多使用XHTML标准开发的网站,第一行就是:

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

打开一些符合标准的站点,例如著名web设计软件开发商Macromedia,网页陶吧,会发现同样的代码。

而另一些符合标准的站点的代码则如下:

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

那么这些代码有什么含义?一定要放置吗?

什么是DOCTYPE

上面这些代码我们称做DOCTYPE声明。DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。

其中的DTD(例如上例中的xhtml1-transitional.dtd)叫文档类型定义,里面包含了文档的规则,浏览器就根据你定义的DTD来解释你页面的标识,并展现出来。

要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;除非你的XHTML确定了一个正确的DOCTYPE,否则你的标识和CSS都不会生效。

XHTML 1.0 提供了三种DTD声明可供选择:

* 过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法),完整代码如下:

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

* 严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>,完整代码如下:

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

* 框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD,完整代码如下:

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

我们选择什么样的DOCTYPE

理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。

注:上面说的”表现层的标识、属性”是指那些纯粹用来控制表现的tag,例如用于排版的表格、背景颜色标识等。在XHTML中标识是用来表示结构的,而不是用来实现表现形式,我们过渡的目的是最终实现数据和表现相分离。

打个比方:人体模特换衣服。模特就好比数据,衣服则是表现形式,模特和衣服是分离的,这样你就可以随意换衣服。而原来HTML4中,数据和表现是混杂在一起的,要一次性换个表现形式非常困难。呵呵,有点抽象了,这个概念需要我们在应用过程中逐步领会。

补充

DOCTYPE声明必须放在每一个XHTML文档最顶部,在所有代码和标识之上。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/158220.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • cmd 远程连接_mysql在cmd中无法访问

    cmd 远程连接_mysql在cmd中无法访问mysql-h192.168.0.1-P80-uroot-p注意的是参数使用都是要和值一起中间不能有空格…..

    2022年10月13日
  • 自动化测试平台(一):前期准备和后端服务搭建「建议收藏」

    自动化测试平台(一):前期准备和后端服务搭建「建议收藏」本专栏会基于djangorestframework+react,并结合这些年自己构建多个自动化测试平台的经验,做一些自动化、平台、测试开发方面的技术、经验分享。会从0开始搭建一个前后端分离的自动化测试平台。由于是免费教程,对于太过初级的内容不会详细进行讲解,更多的是分享自己的理念和开发过程分享。

  • Win8.1应用开发之异步编程

    Win8.1应用开发之异步编程

  • JavaScript数组splice方法

    JavaScript数组splice方法varnumber=[10,3,4,7];//删除第一位元素,0:下标,1:个数varremoved=number.splice(0,1);console.log(number);//[3,4,7]console.log(removed);//[10]varnumber2=[10,3,4,7];//插入元素5和8,1:下标1开始,0:删除0个元素,…

  • nfc怎么复制门禁卡,相关教程在这里

    nfc怎么复制门禁卡,相关教程在这里  在生活中小区、学校都有门禁的,为了保证安全,每一次都要刷门禁卡才能进去,但有时忘记了或者丢了怎么办呢,拉下来看看相关教程。  当然,不是所有的门禁卡都能模拟,所以我们就需要了解你的门禁卡是否是能模拟的类型。  门禁卡一般分为:ID卡和IC卡。而EM卡、M1卡、CPU卡等等,都是这两种卡的细分。  我们看上面这张图。在这张图中,卡是按工作频率来分的:ID卡的工作频率为125KHz频率,而IC卡的工作频率为13.56MHz以上。显然看出,因为IC卡的频率高,所以,它的安全性比较高。小区基本上选择

  • asp.net关于repeater嵌套repeater的方法「建议收藏」

    asp.net关于repeater嵌套repeater的方法「建议收藏」前台代码:                                               类别管理                                              ==名称==               操    作 请不要随意删除!&

    2022年10月13日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号