doctype html h5,HTML DOCTYPE

前言:

DOCTYPE标签在平常书写HTML的时候总是放在首位内容,但是他有什么作用呢。

正文:

html之中的DOCTYPE

书写H5与H4的时候我们引用的使用的DOCTYPE是会有些许不一样的。

HTML4的时候我们使用如下格式:

>

p.s.这里我们说一下H4的几种DTD模式。

1.strict:严格解析 - 该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。例子就如上面展示。

2.Transitional:过度模式 - 该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。例子如下:

>

3. Frameset:框架模式 - 该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

>

而在H5之中我们只需要一句话就好好了。

这一区别主要的原因是因为H5和H4在解析的时候使用的引擎不一样。H4使用的SGML来进行解析的。SGML称为标准通用标记语言。

p.s.这里我们说明一下SGML,其主要用于规定文档 格式 和 解析结构的方法。通俗来说就是其中定义了文档的相关标签以及其解析为什么形式。一个文档主要是分为三个层析:结构,内容,样式。SGML主要处理的是结构和内容。

1:结构:为了描述文档的结构,SGML定义了一个称为“文档类型定义(Document Type Definition,DTD)”的文件,它为组织文档的文档元素(例如章和章标题,节和主题等)提供了一个框架。此外,DTD还为文档元素之间的相互关系指定了规则。例如,“章的标题必须是在章开始之后的第一个元素”,“每个列表至少要有两个项目”等。DTD定义的这些规则可以确保文档的一致性。

2.内容:这里指的内容就是信息本身。内容包括信息名称(标题)、段落、项目列表和表格中的具体内容,具体的图形和声音等。确定内容在DTD结构中的位置的方法称为“加标签”,而创建SGML文档实际上就是围绕内容插入相应的标签。这些标签就是给结构中的每一部分的开始和结束做标记。

3.样式:SGML本身正在定义样式(style)的设置标准,即文档样式语义学和规范语言(Document Style Semantics and Specification Language,DSSSL)。

回归正题,H5实际上是一套新的标准新的解析方式,所以我们在H5的头DOCTYPE标签之中不需要添加相关DTD内容的引用。浏览器在识别了doctype的时候会自动的依据相关的内容进行文档解析的准备。H5的时候浏览器会自动的切换成标准模式进行内容的解析。

p.s.这里我们需要说明一下浏览器的解析模式,其主要依据文档解析类型之中的值来进行筛选判别,我们也可以通过document.compatMode来查看当前的解析模式,其主要分为:

1.BackCompat:怪异模式--浏览器以自己的解析方式来进行相关的数据解析。这里成为怪异模式是因为相同的文档在与不同的浏览器进行内容解析的不相同。造成这一问题的主要原因是因为,早期的时候没有一个准确的web标准。各家厂商一句自己的理解进行网页内容解析造成的。

2.CSS1Compat:标准模式--浏览器依据W3C的标准进行内容的解析。主要使用的模式。

3.伪标准模式:这一个模式主要是针对IE的内容,因为其中的实现方式会与标准不同,但是又会达成与标准类似的结果,所以称为伪标准。这个只做了解,无需太过在意。

JS之中的DOCTYPE:

在JS之中也有相关的变量或者属性来供我们进行模式的查看和一定的操作。

document.doctype属性其实一个只读的属性,我们可以通过这一属性获取到当前文档关联的文档类型定义(DTD),其返回的内容实际上是一个实现了DocumentType接口的对象,

DocumentType接口实际上表示的是一个包含doctype的node,其主要包含了node的方法并实现了childNode接口,其中包含的主要信息如下:

--DocumentType.entities:返回NamedNodeMap的一个DTD变量声明列表类arrayList对象但是是只读的。当然属性本身也是只读的。

--DocumentType.name:返回的是申明名称,即中的html内容。

--DocumentType.publicId:返回的是公共ID,在html4中指的是public之后的那一段标识内容,"-//W3C//DTD HTML 4.01//EN"。在H5之中是空的。

--DocumentType.systemId:返回的是解析文件内容,在H4之中返回的是DTD文件的地址,h5的话将会是空。

当然还有其他的一些属性内容但是所有浏览器都不进行支持,所以此处就不在罗列出来了。

当然在js之中,我们还是可以DOMImplementation.createDocumentType这个方法来创建一个DocumentType类型的对象。当然这一对象内容是可以放入到文档之中的。通过node的提供的insertBefore或者是replaceChild等。生成的对象内容主要是以下三个属性

-- qualifiedNameStr:是一个字符串内容,存储的是具属名称。

-- publicId:PUBLIC属性的定义。

-- systemId:SYSTEM属性的定义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

servlet基础_Servlet基础

servlet基础通过本教程,我将尝试使您更接近Java Servlet模型。 在检查servlet规范中定义的类之前,我将解释在开始开发Web应用程序之前需要了解的基本知识。 了解Java Servlet模型 首先,不仅为基于请求和响应编程模型的规范的Web应用程序定义…

纯 CSS 实现高度与宽度成比例的效果

http://zihua.li/2013/12/keep-height-relevant-to-width-using-css/ 转载于:https://www.cnblogs.com/ygm900/p/10443982.html

c++ || && 逻辑短路问题

结论&#xff1a;“或”逻辑前面为1&#xff0c;“与”逻辑前面为0就会发生短路 1——或逻辑短路 include <stdio.h> int main() { int a5,b6,c7,d8,m2,n2; (ma<b)||(nc>d); printf("%d\t%d",m,n); } 输出的结果为1,2.为什么呢&#xff0c;因为a<b&am…

2021年计算机学硕考研c9,【JRs观点】学姐3000字记录考研8个月心得及作息时间表,献给2021考研同学,从二本到C9...

其实自己不会写东西&#xff0c;本文就像记流水账一样记录一下自己考研的过程吧。18年考研&#xff0c;从二本考上自己理想的985&#xff0c;这心中酸楚只有自己能体会&#xff0c;我个人觉得考研考的是坚持、方法、毅力。在这里把自己的一些经历分享给大家。考研成绩421&#…

abstract

Abstract 类 不能实例化Abstract 方法 在父类里定义抽象方法,在子类里定义这个具体的方法,所以它是抽象的.好处 减少复杂度和提高可维护性 抽象类的子类需要实现父类中的抽象方法&#xff0c;否则会报错。转载于:https://www.cnblogs.com/Frances-CY-FKYM/p/10444062.html

Neo4j:使用LOAD CSV检测CSV标头中的恶意空间

上周&#xff0c;我正在帮助某人将CSV文件中的数据加载到Neo4j中&#xff0c;我们在过滤掉其中一列中包含空值的行时遇到了麻烦。 数据如下所示&#xff1a; load csv with headers from "file:///foo.csv" as row RETURN row╒═════════════════…

lib 和 dll 的区别、生成以及使用详解

【目录】 lib dll介绍 生成动态库 调用动态库 生成静态库 调用静态库 首先介绍一下静态库&#xff08;静态链接库&#xff09;、动态库&#xff08;动态链接库&#xff09;的概念&#xff0c;首先两者都是代码共享的方式。 静态库&#xff1a;在链接步骤中&#xff0c;连接器将…

HDU4631Sad Love Story

这道题是用multiset直接维护就行了&#xff08;可是我根本不会multiset) 用一些剪枝就能跑出来 还有 不要爆int #include <set> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const lo…

计算机知识点小报,制作电脑小报的教案

制作电脑小报的教案教学目标&#xff1a;巩固WORD知识&#xff0c;掌握文档间复制&#xff0c;培养学生的创新能力和综合解决问题的能力&#xff0c;加强爱国主义教育。教学重点&#xff1a;提高学生对WORD的熟练程度&#xff0c;掌握文档间的复制操作及文字和图片的排版。教学…

C++:vector中的resize()函数 VS reserve()函数

http://www.cplusplus.com/reference/vector/vector/vector/ 写代码的时候无意错用了这两个函数 导致测试的时候&#xff0c;程序运行崩溃 发现这两个函数还是有区别的 void reserve (size_type n); reserver函数用来给vector预分配存储区大小&#xff0c;即capacity的值 &…

使用Gradle的maven-publish插件发布快照

我最近与Gradle一起开始了一个新项目 &#xff0c;并决定直接参加–没有Gradle经验&#xff0c;没有关于Groovy的线索&#xff0c;没有教程&#xff0c;只是继续尝试直到可行。 在我决定使用孵化式maven-publish插件将快照发布到Sonatype的Maven快照存储库之前&#xff0c;这一…

计算机网络ipv4到ipv6怎么实现,论计算机网络协议IPV4到IPV6的过渡策略|房屋搬迁过渡协议...

摘要&#xff1a;近年来IPV4协议的网络地址问题已经成为阻碍互联网发展的主要矛盾&#xff0c;而互联网的发展趋势将证明IPV4协议必将会被IPV6协议所替代,但其过渡的过程必定是艰难而漫长的。本文论述了IPV4协议存在的主要问题&#xff0c;并详细的分析了IPV4协议向IPV6协议过渡…

STL常用容器浅谈

STL是C/C开发中一个非常重要的模板&#xff0c;而其中定义的各种容器也是非常方便我们大家使用。下面&#xff0c;我们就浅谈某些常用的容器。这里我们不涉及容器的基本操作之类&#xff0c;只是要讨论一下各个容器其各自的特点。STL中的常用容器包括&#xff1a;顺序性容器&am…

使用AWS使Spring Boot应用程序无服务器运行

在之前的 几篇 文章中&#xff0c;我描述了如何设置Spring Boot应用程序并在AWS Elastic Beanstalk上运行它。 尽管这是从物理服务器到云服务器的伟大一步&#xff0c;但还有更好的可能&#xff01; 走向无服务器 。 这意味着无需花费任何服务器费用&#xff0c;也无需维护或配…

计算机对中断的处理是在用户态下进行的,电大本科生作业系统作业3与答案.doc...

电大本科生作业系统作业3与答案《操作系统》课程作业(三)姓名         班级         学号一、选择题(选择一个正确答案的代码填入括号中)作业生存期共经历4个状态&#xff0c;它们是提交、后备、( )和完成。A&#xff0e;等待 B&#xff0e;就绪 C&#xff0…

浏览器输入网址到浏览器渲染页面的过程

1) 在客户端浏览器中输入网址URL。 2) 发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。 3) 客户端浏览器与WEB服务器建立TCP(传输控制协议)连接。 4) 客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。 5) WEB服务器响应请求&#xff0c;返回指定的URL…

【资料整理】proftpd安装配置

【资料整理】proftpd安装配置1&#xff09;下载安装 wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4c.tar.gz tar zxvf proftpd-1.3.4c.tar.gz cd proftpd-1.3.4c (启用配额模块&#xff0c;限制上传大小&#xff0c;如果重新configure&#xff0c;则需要先make dis…

poj 1873

哇实验室里正在吵架&#xff0c;爽死了&#xff01; wf水题。显然二进制枚举&#xff0c;注意剪枝&#xff0c;val>ans的时候剪一下&#xff0c;不然会tle。然后就没惹。 我老人家一开始写了个 感觉非常垃圾&#xff0c;wa了一发又t了一发。 感觉自己可以退役了 1 #include …

汉中计算机培训班学费是多少,汉中远程教育培训班收费多少

汉中远程教育培训班收费多少&#xff1f;在企事业单位&#xff0c;无论你的从业履历有多么辉煌&#xff0c;没有本科学历就是一道硬伤。在这个层面上&#xff0c;本科学历是你求得工作的一块“敲门砖”。还有&#xff0c;很多企事业单位是靠学历论薪或者晋职加薪的重要条件&…

wadl_WADL中的JSON模式

wadl在其他工作之间&#xff0c;我最近一直在审查WADL规范&#xff0c;以解决一些文档问题&#xff0c;以生成更新版本。 因为显而易见的一件事是缺少对XML以外的语言的语法支持-是的&#xff0c;您可以使用JSON <-> XML Schema的映射&#xff0c;但这对于JSON纯粹主义者…