关于<!DOCTYPE html>的学习(转)
DOCTYPE是对Document type的缩写,说明用XHTML或者HTML是什么版本的。必须出现在<html>标签的前面,不需要关闭标签。
<!DOCTYPE>声明不是标签,它指示Web浏览器关于页面使用哪个HTML版本编写的,请始终向HTML文档添加<!DOCTYPE>声明,这样浏览器才能获知文档类型,最终如何显示你的Web文档。所以,要想制作符合W3C标准的页面,DOCTYPE声明是必不可少的关键组成部分。
当使用XHTML标准开发的网页,第一行就是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这是xhtml的W3C标准。
DOCTYPE指定了HTML文档遵循的文档类型定义(DTD),声明的写法遵循一定的规则,指出阅读程序用什么规则集解释文档中的标记。
规则样式:
语法:
HTML 顶级元素 可用性 “注册//组织//类型//标签//定义// 语言” "URL"
可能值:
- 顶级元素:指定的DTD中声明的顶级元素类型,这与声明的SGML文档类型相对应。默认是:HTML
- 可用性: 指定正式公开标示符(FPI)是可访问的对象还是系统资源。默认是:PUBLIC,可公开访问的对象。SYSTEM 系统资源,如本地文件或 URL。
- 注册: 指定组织是否是国际化标准组织(ISO)。 + 默认。组织名称已注册。
- 组织名称未注册:IETF和W3C不是注册的ISO组织。
- 组织: 指定表明负责由!DOCTYPE声明引用的DTD的创建和维护的团队或组织名称。
- 类型: 指定公开文本类,即所引用的对象类型。默认:DTD。
- 标签: 指定公开文本描述,对所引用的公开文本唯一描述性名称。可附带版本号。默认:HTML
- 定义: 指定文档类型定义。Frameset框架集文档。Strict排除所有W3C专家希望逐步淘汰的代表性属性和元素。Transition包含排除Frameset元素的全部内容。
- 语言:指定公开文本语言,即创建所引用对象的自然语言编码系统。默认:EN.
- URL: 指定所引用对象的位置。
(转自:http://www.cnblogs.com/tomatoxml/p/3585741.html)
DTD(例子中的:xhtml1-transitional.dtd)即文档类型定义,包含文档的规划,浏览器根据定义的DTD来解释页面的标示,然后展现出来。
xhtml1.0提供三种DTD声明可供选择:
- Transitional: 包含所有HTML元素和属性,包含展示性和弃用的元素,不允许使用框架集(Framesets),必须以正确的格式来编写XML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- Strict: 包含所有HTML元素和属性,但是不包含展示性和弃用的元素(比如:font),不允许使用框架集(Framesets),必须以正确的格式来编写XML。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">
- Frameset: 等同于XHTML 1.0 Transitional, 但是允许包含框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
相比xhtml的三种DTD声明和HTML 4.01的三种声明,HTML5 中只有一种<!DOCTYPE>声明:
<!DOCTYPE html>
HTML4.01中,<!DOCTYPE>声明引用DTD,因为HTML4.01是基于SGML,DTD规定了标记语言的规划,这样浏览器才能正确显示内容,HTML5不是基于SGML的,所以不需要引用DTD。
解释下关于XHTML1.0,HTML 4.0和HMTL5:
XHTML 1.0 是对HTML 4.0按照XML标准要求的改造,是XML风格化的HTML4.01,而HTML5是下一代HTML,用来取代HTML 4.01。W3C 原本确实计划用 XHTML 系列替代 HTML 4.01,但 XHTML 系列实际上只活到了 1.1(1.1 和夭折的 1.2 已经体现出过分 XML 的迹象,而 W3C 的理想其实在疯狂的 XHTML 2 身上,当然,它没能诞生),还没脱离 HTML 4.01 的阴影就死了。还没等 XHTML 兴起,它的地位就被 HTML5 取代了。(摘自http://www.zhihu.com/question/20258628)
在DOCTYPE声明后面的是一个XHTML的命名空间(namespace):
<html xmlns="http://www.w3.org/1999/xhtml">
当需要使用符合XML规范的XHTML文档,则应该在<html>标签中使用xmlns属性。
检查工具:需要检查自己的页面是否符合在DOCTYPE中声明的标准,可以使用W3C提供的验证工具:http://validator.w3.org/
关于<!DOCTYPE html>的学习(转)的更多相关文章
- HTML5标准学习 – DOCTYPE
转自:http://www.cnblogs.com/GrayZhang/archive/2011/03/31/learning-html5-doctype.html 上一篇文章主要讲述了HTML文档的 ...
- html学习一(html简史及doctype)
html3部分 doctype(html) dtd head body 一.深入浅出HTML与XHTML的区别 HTML(HyperText Markup Language,超文本标记语言)最早的HT ...
- HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式
主要涉及知识点: HTML与XHTML HTML与XHTML的区别 DOCTYPE与DTD的概念 DTD的分类以及DOCTYPE的声明方式 标准模式(Standard Mode)和兼容模式(Quirc ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- 简单入门canvas - 通过刮奖效果来学习
一 .前言 一直在做PC端的前端开发,从互联网到行业软件.最近发现移动端已经成为前端必备技能了,真是不能停止学习.HTML5新增的一些东西,canvas是用的比较多也比较复杂的一个,简单的入门了一下, ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- ASP.NET从零开始学习EF的增删改查
ASP.NET从零开始学习EF的增删改查 最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
随机推荐
- c c++面试c工程开发之宏定义和条件编译
多数c语言的初学者对c工程开发过程各个阶段的作用理解不到位,而这方面的的知识又是实际开发过程中经常用到的技能点,所以就成为面试考察中一个重要的考察方面.例如:头文件的作用.头文件的内容:链接的作用和意 ...
- Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法
在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo.一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi ...
- XSS 和 CSRF简述及预防措施
在 Web 安全领域中,XSS 和 CSRF 是最常见的攻击方式.本文将会简单介绍 XSS 和 CSRF 的攻防问题. 1. xss XSS,即 Cross Site Script,中译是跨站脚本攻击 ...
- 查询表名里含有Bill的表有哪些
Select Name from Master.dbo.sysobjects where xtype='u' and Name like '%Bill%' order by name
- Cython中def,cdef,cpdef的区别
这是我的第一篇翻译,希望大家多多给出意见和建议. 如有转载,请注明出处. 原文来自:https://stackoverflow.com/questions/28362009/definition-of ...
- Python学习之property
Python中使用Property函数可以将类中的函数当作属性来调用. 案例 __metaclass__=type class Rectangle: def __init__(self): self. ...
- 批量安装Python第三方库
1.首先在python程序的文件夹内,新建一个文本文档,名字自定义,在文档中输入需要安装的第三方库,并用英文半角逗号隔开. import os def getTxt(): txt = open(&qu ...
- java 第六章 面向对象基础
1.面向对象编程思想 面向过程编程 传统的C语言属于面向过程编程.面向过程解决问题的思路:通常是分析出解决问题所需要的步骤,然后用方法把这些步骤一步一步实现,最后一个一个依次调用方法来解决. 面向过程 ...
- 基于Ubuntu Server 16.04 LTS版本安装和部署Django之(一):安装Python3-pip和Django
近期开始学习基于Linux平台的Django开发,想配置一台可以发布的服务器,经过近一个月的努力,终于掌握了基于Apache和mod-wsgi插件的部署模式,自己也写了一个教程,一是让自己有个记录,二 ...
- sqoop 的使用 -20160410
1 导入导出数据库 1)列出mysql数据库中的所有数据库命令 # sqoop list-databases --connect jdbc:mysql://localhost:3306/ - ...