【HTML】HTML简介

news/2024/11/28 19:38:43/

参考资料:https://html.spec.whatwg.org/#introduction

在最初的五年(1990-1995)中,HTML经历了一系列修订和扩展,最初主要由欧洲核子研究组织(CERN)托管,随后由互联网工程任务组(IETF)托管。

随着W3C的创建,HTML的发展再次改变了方向。1995年,扩展HTML3.0的第一次尝试以失败告终,后来被称为HTML3.2的更务实的方法所取代,该方法于1997年完成。同年晚些时候,HTML4迅速跟进。

次年,W3C 成员决定停止发展 HTML,转而开始致力于基于 XML 的等效物,称为 XHTML。这项工作始于在 XML 中重新制定 HTML4,被称为 XHTML 1.0,它除了新的序列化之外没有添加新功能,并于 2000 年完成。在 XHTML 1.0 之后,W3C 的重心转向在 XHTML 模块化的旗帜下使其他工作小组更容易扩展 XHTML。与此同时,与此同时,W3C还开发了一种与早期的HTML和XHTML语言不兼容的新语言,称为XHTML2。

大约在 1998 年 HTML 的发展停止的时候,浏览器供应商开发的 HTML API 的一部分被指定并以 DOM Level 1(1998 年)和 DOM Level 2 Core 和 DOM Level 2 HTML(从 2000 年开始并在 2003 年达到顶峰)的名称发布。这些努力后来逐渐消失,2004 年发布了一些 DOM Level 3 规范,但在所有 Level 3 草案完成之前,工作组就关闭了。

2003 年,XForms(一项被定位为下一代 Web 表单的技术)的发布激起了人们对发展 HTML 本身而不是寻找替代品的新兴趣。这种兴趣源于这样一种认识:XML 作为 Web 技术的部署仅限于全新的技术(如 RSS 和后来的 Atom),而不是作为现有部署技术(如 HTML)的替代品。

一个概念证明表明,可以扩展HTML4的表单以提供XForms 1.0引入的许多功能,而不需要浏览器实现与现有HTML网页不兼容的呈现引擎,这是这种重新兴趣的第一个结果。在这个早期阶段,虽然草案已经公开可用,并且已经从所有来源征求意见,但该规范仅受Opera Software的版权保护。

2004年,W3C研讨会测试了重新开放HTML演进的想法,Mozilla和Opera共同向W3C提交了HTML5工作以及上述仅涉及表单相关功能的早期草案提案所依据的一些原则这项提议被拒绝了,理由是该提议与之前选择的网络发展方向相冲突;W3C的工作人员和成员投票决定继续开发基于XML的替代品。

此后不久,苹果、Mozilla和Opera联合宣布,他们打算在名为WHATWG的新场所的保护下继续努力工作。创建了一个公共邮件列表,草案被移至WHATWG网站。版权随后被修改为由所有三家供应商共同拥有,并允许重新使用该规范。

WHATWG基于几个核心原则,特别是技术需要向后兼容,规范和实现需要匹配,即使这意味着改变规范而不是实现,规范需要足够详细,以便实现可以实现完全互操作性,而不需要对彼此进行反向工程。

后一项要求特别要求HTML5规范的适用范围包括之前在三个单独文档中规定的内容:HTML4、XHTML1和DOM2 HTML。这也意味着需要包括比之前被认为的标准更多的细节。

2006年,W3C表示有兴趣参与HTML5的开发,并于2007年成立了一个工作组,与WHATWG合作开发HTML5规范。苹果、Mozilla和Opera允许W3C在W3C版权下发布规范,同时在WHATWG网站上保留一个限制较少的版本。

多年来,这两个组织一直合作无间。然而,在2011年,这两个组织得出了不同的结论,他们有不同的目标:W3C希望发布“HTML5”的“finished”版本,而WHATWG希望继续致力于HTML的“Living Standard”,继续维护该规范,而不是将其冻结在一个存在已知问题的状态,并根据需要添加新的功能来发展平台。

2019 年,WHATWG 和 W3C 签署了一项协议,就未来 HTML 的单一版本进行合作。


http://www.ppmy.cn/news/1418543.html

相关文章

Java中的消息队列(如RabbitMQ、Kafka)是如何工作的?

消息队列(Message Queue)是一种通信方法,其中消息发送者和接收者通过队列进行异步通信。在Java中,有许多消息队列系统,如RabbitMQ、Kafka等,它们各自有自己的特点和适用场景。这里尽量以一种通用的方式解释…

nodejs安装常用命令

安装 Node.js 后&#xff0c;你可以在命令行中使用以下常用命令&#xff1a; node&#xff1a;启动 Node.js 的交互式解释器&#xff0c;可以直接在命令行中执行 JavaScript 代码。 npm install <package-name>&#xff1a;安装一个 Node.js 模块&#xff0c;<packag…

数据结构与算法的经典问题 — 背包问题

数据结构与算法 数据结构与算法是计算机科学中的两个核心概念&#xff0c;它们在软件开发和问题解决中起着至关重要的作用。 数据结构 数据结构是计算机中存储、组织和管理数据的方式&#xff0c;它能够帮助我们高效地访问和修改数据。不同的数据结构适用于不同类型的应用场…

服务器主机关机重启告警

提取时间段内系统操作命名&#xff0c;出现系统重启命令&#xff0c;若要出现及时联系确认 重启命令&#xff1a; reboot / init 6 / shutdown -r now&#xff08;现在重启命令&#xff09; 关机命令&#xff1a; init 0 / shutdown -h now&#xff08;关机&#…

C++类和对象中下篇

赋值运算符重载 运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也具有其返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键字ope…

数据结构——Java

数组 Java数组是一种基础且重要的数据结构&#xff0c;用于存储一组相同类型的数据元素。 在Java中&#xff0c;数组有以下关键特性&#xff1a; 同质性&#xff1a;数组中的每个元素都具有相同的数据类型。有序性&#xff1a;数组中的元素是有序排列的&#xff0c;可以通过…

C++:运算符与表达式 (信奥赛练习)

运算符与表达式 1. 运算符基本算术运算符赋值运算符比较运算符逻辑运算符 2. 表达式算术表达式逻辑表达式赋值表达式总结 1. 运算符 运算符是用于执行特定操作的符号。在编程和数学中&#xff0c;运算符是表达式的重要组成部分。它们可以用于执行加减乘除等基本算术运算&#…

webrtc m98编译问题记录

webrtc m98编译问题 执行命令 gn gen --targetx64 --idevs2019 --args"is_debugtrue rtc_enable_protobuffalse is_clangfalse target_cpu\"x64\" enable_iterator_debuggingtrue use_custom_libcxxfalse symbol_level0 rtc_include_testsfalse" out/d…