HTML中doctype的作用及几种类型详解
一、DOCTYPE标签的定义与作用
<!DOCTYPE>是一个用于声明当前HTMl版本,用来告知web浏览器该文档使用是哪种 HTML 或者 XHTML 规范来解析页面,以便浏览器更加准确的理解页面内容,更加良好地展现内容效果!
二、DOCTYPE标签的特点
1.<!DOCTYPE> 标签没有结束标签;
2.<!DOCTYPE>声明被所有主流浏览器支持;
3.<!DOCTYPE>声明不是一个HTML标签,在HTML5中是可以不区分大小写的;
4.<!DOCTYPE>声明必须位于HTML文档中最前面,处于<html>标签之前;
注:HTML4.01是基于SGML的,需要以<!DOCTYPE>声明引用一个DTD(文档类型定义),用来保证浏览器按照DTD指定的标记规则解析网页内容!HTML5不基于SGML,所以不需要指定DTD。
三、DOCTYPE与浏览器模式
1.声明与否的影响
<!DOCTYPE>声明的前面是没有任何内容的,如果有其他内容(空格除外)就会使浏览器在 IE下开启怪异模式渲染网页;如果浏览器进入怪异模式,就会按自己的方式解析渲染页面。那么,在不同的浏览器下,显示的样式效果会不一致。
如果不写文档DOCTYPE声明,浏览器将无法获知HTML或XHTML文档的类型,也会进入怪异模式;还有在IE6以下版本永远进入怪异模式;
但是,只要我们对文档DOCTYPE做了正确的声明,浏览器就会进入标准模式;浏览器会按照W3C的标准来解析渲染页面,那么,在所有的浏览器下,显示的样式效果会保持一致。因此, <!DOCTYPE>声明还是很有必要的。
2.标准模式和兼容模式
若文档为标准模式,则该文档的排版与JS运作模式都是以该浏览器支持的最高标准运行;兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
四、DOCTYPE常见声明类型
HTML中<!DOCTYPE>常见声明类型共有8种,分别是html5有1种,HTML 4.01和XHTML 1.0都有3种,XHTML 1.1有1种,它们的写法如下:
1.HTML5 <!DOCTYPE>声明——》<!doctype html>
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标签也是有所不同。比如:
<article>和<aside>标签,能在html5中能使用,而在HTML 4.01和XHTML中就不能使用;
<center>标签,在html5和XHTML1.0版本中是不可用的,而在HTML4.01和XHTML1.1的<!DOCTYPE>声明中,只有Transitional和Frameset是可用的!由此可见,<!DOCTYPE>声明的html版本,也决定了哪些html标签可以合法使用!
以上内容原文转自(https://www.liudaima.com/a/45.html),如有侵权,联系删除
HTML中doctype的作用及几种类型详解的更多相关文章
- 领域模型中的实体类分为四种类型:VO、DTO、DO、PO
http://kb.cnblogs.com/page/522348/ 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: V ...
- [ 转载 ] Java开发中的23种设计模式详解(转)
Java开发中的23种设计模式详解(转) 设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...
- 域模型中的实体类分为四种类型:VO、DTO、DO、PO
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析. 得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应 ...
- 转:领域模型中的实体类分为四种类型:VO、DTO、DO、PO
经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析.得出的主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于 ...
- C#中方法的参数的四种类型
C#中方法的参数有四种类型: 1. 值参数类型 (不加任何修饰符,是默认的类型) 2. 引用型参数 (以ref 修饰符声明) 3. 输出型参数 (以out 修 ...
- 《从0到1学习Flink》—— Flink 中几种 Time 详解
前言 Flink 在流程序中支持不同的 Time 概念,就比如有 Processing Time.Event Time 和 Ingestion Time. 下面我们一起来看看这几个 Time: Pro ...
- 转载~kxcfzyk:Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解
Linux C语言多线程库Pthread中条件变量的的正确用法逐步详解 多线程c语言linuxsemaphore条件变量 (本文的读者定位是了解Pthread常用多线程API和Pthread互斥锁 ...
- redis 五种数据结构详解(string,list,set,zset,hash)
redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...
- 【Redis】redis 五种数据结构详解(string,list,set,zset,hash)
redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...
随机推荐
- 已解决[Authentication failed for token submission,Illegal hexadecimal charcter s at index 1]
在初次学习使用shiro框架的时候碰到了这个问题,具体报错情况如下: [org.apache.shiro.authc.AbstractAuthenticator] - Authentication f ...
- StringUtils、CollectionUtils工具类的常用方法
唯能极于情,故能极于剑 欢迎来到 “程序牛CodeCow” 的博客,有问题请及时关注小编公众号 “CodeCow”,大家一起学习交流 下面将为大家演示StringUtils.CollectionUti ...
- vue 基于elment UI tree 组件实现带引导、提示线
实现样式 准备工作,先实现 树状组件的基本样式 <span style="height:500px; display:block; overflow-y:auto;" cla ...
- PAT 1029 Median (25分) 有序数组合并与防坑指南
题目 Given an increasing sequence S of N integers, the median is the number at the middle position. Fo ...
- CSS综合案例
代码示例:新闻页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- [wordpress使用]003_添加新文章
当WordPress前面的工作准备的差不多,没什么大问题时,就可以开始为你的博客添加文章,让博客的内容变得更加丰富.既然你已经开始了这个博客,那么就说明你已经有一个明确的方向,知道自己到底要写那些内容 ...
- Codeforces Round #635 (Div. 2)部分(A~E)题解
虽然打的是div1,但最后半小时完全处于挂机状态,不会做1C,只有个 \(O(n^3)\) 的想法,水了水论坛,甚至看了一下div2的AB,所以干脆顺便写个div2的题解吧,内容看上去还丰富一些(X) ...
- Chisel3 - bind - Wire, Reg, MemPort
https://mp.weixin.qq.com/s/AxYlRtAXjd55eoGX5l1W-A 模块(Module)从输入端口(input ports)接收输入,经过内部实现的转换逻辑,从输出 ...
- 【Redis面试题】如何使用Redis实现微信步数排行榜?
1. 前言 之前写过一篇博客,讲解的是Redis的5种数据结构及其常用命令,当时有读者评论,说希望了解下这5种数据结构各自的使用场景,不过一直也没来得及写. 碰巧,在3月份找工作面试时,有个面试官先问 ...
- Java实现 LeetCode 474 一和零
474. 一和零 在计算机界中,我们总是追求用有限的资源获取最大的收益. 现在,假设你分别支配着 m 个 0 和 n 个 1.另外,还有一个仅包含 0 和 1 字符串的数组. 你的任务是使用给定的 m ...