一、DOCTYPE标签的定义与作用

是一个用于声明当前HTMl版本,用来告知web浏览器该文档使用是哪种 HTML 或者 XHTML 规范来解析页面,以便浏览器更加准确的理解页面内容,更加良好地展现内容效果!

二、DOCTYPE标签的特点

1. 标签没有结束标签;

2.声明被所有主流浏览器支持;

3.声明不是一个HTML标签,在HTML5中是可以不区分大小写的;

4.声明必须位于HTML文档中最前面,处于标签之前;

注:HTML4.01是基于SGML(标准通用标记语言)的,需要以声明引用一个DTD(文档类型定义),用来保证浏览器按照DTD指定的标记规则解析网页内容!HTML5不基于SGML,所以不需要指定DTD。

三、DOCTYPE与浏览器模式

1.声明与否的影响

声明的前面是没有任何内容的,如果有其他内容(空格除外)就会使浏览器在 IE下开启怪异模式渲染网页;如果浏览器进入怪异模式,就会按自己的方式解析渲染页面。那么,在不同的浏览器下,显示的样式效果会不一致。

如果不写文档DOCTYPE声明,浏览器将无法获知HTML或XHTML文档的类型,也会进入怪异模式;还有在IE6以下版本永远进入怪异模式;

但是,只要我们对文档DOCTYPE做了正确的声明,浏览器就会进入标准模式;浏览器会按照W3C的标准来解析渲染页面,那么,在所有的浏览器下,显示的样式效果会保持一致。因此, 声明还是很有必要的。

2.标准模式和兼容模式

若文档为标准模式,则该文档的排版与JS运作模式都是以该浏览器支持的最高标准运行;兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

四、DOCTYPE常见声明类型

HTML中常见声明类型共有8种,分别是html5有1种,HTML 4.01和XHTML 1.0都有3种,XHTML 1.1有1种,它们的写法如下:

1.HTML5 声明——》

2.HTML 4.01和XHTML 1.0

strict包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

transitional该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

framesets该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

3.XHTML 1.1规定了一种声明, 等同于 XHTML 1.0 Strict,但允许添加模型。

五、DOCTYPE对HTML标签的影响

html版本经过了几次的升级,每次升级都会弃用一些不适用的旧标签,而增加某些新的html标签。因此,对于不同html版本的doctype文档类型声明,能合法使用的html标签也是有所不同。比如:

和标签,能在html5中能使用,而在HTML 4.01和XHTML中就不能使用;

标签,在html5和XHTML1.0版本中是不可用的,而在HTML4.01和XHTML1.1的声明中,只有Transitional和Frameset是可用的!由此可见,声明的html版本,也决定了哪些html标签可以合法使用!

以上内容原文转自(https://www.liudaima.com/a/45.html),如有侵权,联系删除

html中的doctype有什么作用,HTML中doctype的作用及几种类型详解相关推荐

  1. 简述html中Doctype的作用,HTML中doctype的作用及几种类型详解

    一.DOCTYPE标签的定义与作用 是一个用于声明当前HTMl版本,用来告知web浏览器该文档使用是哪种 HTML 或者 XHTML 规范来解析页面,以便浏览器更加准确的理解页面内容,更加良好地展现内 ...

  2. python中如何创建一个空列表_Python创建空列表的字典2种方法详解

    如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都 ...

  3. u盘制作大师 linux系统教程,制作用U盘启动的Linux系统的简单步骤详解

    制作用U盘启动的Linux系统的简单步骤详解 最近听朋友说误删除了Linux系统里的文件,于是系统进不了,里面保存着很多重要的数据,这该怎么办?虽然可以把硬盘取出挂载其他Linux系统运行,也可跳过控 ...

  4. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

  5. Python之pandas:pandas中to_csv()、read_csv()函数的index、index_col(不将索引列写入)参数详解之详细攻略

    Python之pandas:pandas中to_csv().read_csv()函数的index.index_col(不将索引列写入)参数详解之详细攻略 目录 pandas中to_csv().read ...

  6. C++中size_type类型详解

    介绍 是和string类类型和vector类类型定义相关的类型,用以保存任意string对象或vector对象的长度,标准库类型将size_type定义为unsigned类型 string抽象意义是字 ...

  7. 网页中的三种地址详解

    网页中的a标签具有地址跳转的功能,href属性指向跳转的地址. 一.三种地址模式 网络地址分为两种,一种是绝对地址,一种是相对地址. 但是相对地址又可以细分为两种,一种是基于当前目录的相对地址,一种是 ...

  8. mysql binlog event_MySQL binlog中的事件类型详解

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...

  9. mysql中数据库字段类型详解

    mysql中数据库字段类型详解 1,blob字段 mysql中blob是一个二进制大型对象,是一个可以储存大量数据的容器,它能容纳不同大小的数据. mysql中blob的四种类型除了存储数据的大小有区 ...

最新文章

  1. VS2017常用、好用的快捷键
  2. 解析导入表和IAT表
  3. myeclipse 项目右键没有svn_新建SVN仓库并上传项目
  4. C语言高级编程:预处理中的 # 和 ##
  5. LeetCode MySQL 1581. 进店却未进行过交易的顾客
  6. Redis中的事务和watch(乐观锁)
  7. mayaa的一些代码
  8. ==和Equal()
  9. 心电信号越界怎么回事_一种心电信号处理方法
  10. kindle 不能连接wifi的三个原因
  11. vue v-for实现多行等分布局-三等分
  12. flash花屏 html,Flash中轻松制作电视花屏闪屏的效果
  13. 小学生怎样学习英语,ProudKids少儿英语推荐几首适合学英语的三年级英语歌曲
  14. [RK3588-Android12] Uboot-Logo引起的 HDMI第一次开机无声音问题
  15. 第四次作业 个人学习总结 霍兰德- 职业兴趣测评
  16. 字节流和字符流的应用
  17. 世界上排名前100的英文歌详细名单及介绍
  18. 如何在华为云软件开发云上搭建JavaWeb,Maven项目
  19. php批量更新修改数据库
  20. 数学建模系列-优化模型(六)---模拟退火模型

热门文章

  1. java学员学生综合测评管理系统
  2. Redis基本操作进阶篇学习--排序
  3. 移动web开发入门—基础知识、自适应布局、调试
  4. html判断 token,(html)前端如何验证token的合法性来判断用户是否登录?
  5. linux nginx 域名转发,nginx域名转发|nginx域名配置|nginx多域名配置的方法
  6. 用Python抢过年回家火车票
  7. 从JVM理解父类引用指向子类对象
  8. 游戏美术行业,选原画好还是3D建模好?答案告诉你哦
  9. 服务器xp系统无法粘贴到本地,win7远程xp不能复制怎么办_win7远程连接XP无法使用复制粘贴功能如何解决-win7之家...
  10. esp8266灯上电闪一下_【零知ESP8266教程】快速入门2-点亮外部LED灯