【大发快3开户】HTML 30 年进化史

  • 时间:
  • 浏览:5

声明:本文来自于微信公众号CSDN(ID:CSDNnews),作者: 司徒正美,授权站长之家转载发布。

随着近年来,前端框架战争的白热化,战斗溢出到后端、移动端、小系统进程池池端等层面……当我们都当我们都儿似乎不像随后先要 关注底层,H大发快3开户TML、JavaScript、CSS 被不要 更高级的大发快3开户语言所转译,成为了前端的汇编语言。

或许在不要 年后,培训公司假若教授新人:TypeScript 如保写,Sass 如保写,JSX 如保写,这时假若会出现 jQuery 时代的荒诞现象——jQuery 与JavaScript 哪一一有一个 更慢?这是四种 悲哀,也是时代的进步吧。正如当我们都当我们都儿开心敲着电脑,不需要关心底层的芯片是如保运作的。这是文明建立在极度脆弱的生态下的至高产品。

而当我们都当我们都儿浏览的复杂化页面的底层是 HTML+CSS+JavaScript 构建的,其中HTML 是基础中的基础,但它一直 被人所忽视。要想要页面文明轻易湮灭,当我们都当我们都儿需认真封存这主次知识,就像亚述人把当我们都当我们都的知识楔入到泥板中一样。

HTML 的前身 SGML

战争驱动文明发展,互联网是美国军队为了快速传送情报而创造造出的。假若单纯传送文字,当时的电报就可不须要实现,但显然像地图上的图像信息,电服就不行了。这随后须要四种 语言来组织那先 文字与影像,最好还能地处交互性。交互我觉得非要实时,但总好过先要 。于是学者们找到当时最流行的文档描述语言 SGML。

SGML 是国际上定义电子文档和内容描述的标准。它源于 1969 年 IBM 公司开发的文档描述语言 GML,GML 主要用来出理 不同系统中文档格式不同的现象。后经不要 年发展,1986 年经 ISO 批准为国际标准 ISO8897,并被称为 SGML。

它有不要 HTML 的型态,如内容与样式分离。在 SGML 中,标记分四种 :四种 用来描述文档显示的样式,称为系统进程池池标记;另四种 用来描述文档中搞笑的话的用途,称为描述标记。一一有一个 SGML 文件通常分一有一个 层次:型态、内容和样式。型态为组织文档的元素提供框架,内容是信息四种 ,样式控制内容的显示。正假若先要 ,它的使用范围很广,被不要 大型公司用来创建和发布信息。诸如布告、技术手册、章节目录、设计规范、各种信函等,都可不须要用它来设计描述。

假若 SGML 有致命的缺憾,假若它的优点成为了它的缺点。SGML 设计精良,规范严谨,原应了其复杂化性也高,在军情紧急的情况报告下,须要快速交换情报,非要慢吞吞写好每个标签,假若当时每秒几个比特的网速也是一一有一个 现象。

假若它须要裁减,于是有了HTML。

http://info.cern.ch/ 世界第一一有一个 网站,非常简洁。

浏览器大战对 HTML 的影响

当时当我们都当我们都儿假若 要的是一一有一个 精简版的 SGML,但最终当我们都当我们都得到的一一有一个 完整篇 不同的东西。

这要从解析网页的浏览器说起,Web 之父 Tim Berners Lee 设计的浏览器WorldWidWeb 过于简单,于是让商业浏览器有可乘之机。

在刚始于英语 了了时,浏览器商还是按照 W3C 的制定的规则,如 Mosia、Netscape,但微软介入随后就地处改变。微软制定自己的浏览器语法与标准,于是原应了两套标准的出现 。

在规划中,HTML 也是一门严谨的语言,是深层有组织性、规范化、模块化。相似,规范化是有一一有一个 文档类型声明 DOCTYPE 来指明它如保解析的。模块化,是说各种标大发快3开户签我觉得也是有组强性的,几个几个地划分地不同的族群,合起来实现一一有一个 功能,最著名的是表单与表格。

假若随后出现 了不要 意外,不要 用来装饰用的标签(s、b、i、u、font)假若 CSS 的出现 ,被当我们都当我们都诉之败作,渐渐被边缘化与废弃。不要 用来模拟 Excel 功能的标签(table、tbody、tr)被当我们都当我们都用来布局,弄得页面难以维护。

在 CSS 标准化时代,又矫枉过正,硬生生地用 DIV 来模拟表格。不要 用来实现广告功能的标签,原应会有满屏飘动、不需要用户关闭的乱象。在这几个大事故中,不要 标签假若被胡乱使用或边缘化。

我自己认为最大原应是 W3C 先要自己开发一一有一个 浏览器,一直 倚重某一一有一个 方,原应造成 HTML 的失控。

HTML 在语法上设计得非常简单易学。

HTML 标签是包在小括号后边,先要 人规定标签名是大写还是小写。开标签中,标签名旁边有不要 属性,那先 属性的属性值先要 人规定它算不算 能引号,引号是单引号还是双引号,先要 规定标签算不算 一定要闭合。

假若当初是有规定的,但无法遵循。浏览器须要最快地将内容呈现给用户,但当时的网速不太假若,于是浏览器大厂允许用户可不须要不需要闭合标签,不需要严格括起属性值,并能跑起页面。四种 纵容在当时成了优势,被不要 浏览器争相模仿。

此外,还有更厉害的传输优化,比如页面源码是假若 的:

<p title='aaa'><input readonly="true" /></p>

实际在 IE6~8 的控制台下想看 的源码是假若 ,通过大写化与对布尔属性的特殊出理 ,不要 点地减少传输内容。

<P title=aaa><INPUT READONLY >

在 Google 早期的首页中,html、head、body 标签是刻意省略掉,假若它知道浏览器会支持假若 残缺的页面。在自然界中,这是不可想象的,残缺的东西会被淘汰。

对于 HTML 的失控,W3C 决定开发另四种 标签语言,于是 XML 诞生了。但 XML 出现 得太晚了,无力回天。它一直 作为数据的传输载体而地处,而有的是描绘界面用。它我觉得是能描绘界面的,一有一个 明证是 SVG 语言,及安卓后边的 XML 模板。

HTML 的版本

HTML 发布以来,迭代过不要 版本,现在是小步快跑的第 5 版,但 HTML5 假若有的是 W3C 所规范的了,是由一一有一个 浏览器大厂们组成的俱乐部 WHATWG 发布的。

下面是一一有一个 简单的路线图:

  1. 不地处 HTML1.0, 人及为战

  2. HTML2.0,从 1995 年 11 月到 2000 年;

  3. HTML3.2,  从 1996 年 1 月到现在;

  4. HTML4.0,从 1997 年 12 月到现在;

  5. HTML4.01,从 1999 年 12 月到现在;

  6. XHTML 1.0,从 2000 年 1 月 20 日到现在;

  7. HTML5.0,从 2014 年 10 月 29 日到现在。

可不须要看出几个断层,HTML1.0 还先要 准备好时,当我们都当我们都儿就争先抢后地始于英语 了了做,于是当时相当地混乱。

早期的浏览器包括了:Tim Berners 的 WorldWideWeb 浏览器,兼具浏览器和编辑器功能,但非要运行在NeXTStep操作系统上;CERN的一位数学实习生 Nicola Pellow 开发出 Line-mode 浏览器,能运行在 UNIX 和 MS-DOS 上;Erwise 是第一一有一个 带图形界面的浏览器,支持搜索网页中的单词,由四名芬兰大学生开发,在 1992 年发布;加州伯克利的 Pei-Yuan Wei 在1992 年4 月发布了 ViolaWWW,四种 浏览器受到了 Mac 系统进程池池 HyperCard 的启发,但他先要 Mac 非要接触到 UNIX 机器,1992 年夏天,斯坦福线性加速器中心物理学家 Tony Johnson 为斯坦福的物理学家发布了图形浏览器 Midas;与此一同,CERN 的 Nicola Pellow 和 Robert Cailliau 发布了第一一有一个 Mac浏览器 Samba;基于 Viola和 Midas 的 Mosaic 在 1993 年发布;堪萨斯大学发布了 Lynx;康奈尔大学法学院学生 Tom Bruce 发布了 Cello。——节选自《被遗忘的早期浏览器》

HTML3. 0 时,改了又改,那时五大浏览器的有一个玩家假若全场(IE、Netscape、Opera、Safari),要满足四家的喜好非常难。这也是目前还在支持的早期标准。

XHTML 是 W3C 最后一次赌博,想用 XML 的规范来修正 HTML 一直 以来松散的编写形式,即要来闭合的地方须要闭合,属性值须要要括起来,废弃的标签非要再使用,须要求对 script 标签的内容使用 CDATA 国际包囊起来,DOCTYPE 变得很长……它们还专门编写一一有一个 网站给当我们都当我们都儿做校正:

https://validator.w3.org/

下面这段 XHTML 标准模式代码,符合 W3C XHTML 语法,并能执行(保存为 itworks.xhtml 文件,用 Firefox 打开):

俗话说,由俭入奢易,由奢入俭难。用户不习惯,假若写的页面不合格,浏览器不解析,原应用户会跑去竞争对面前。假若这闹剧草草收场了。浏览器商也想看 自己的能量所在,把 HTML 的规范制定收归面前。

HTML的模块介绍

在语义化时代,人家过于关注于单个标签所表示的意思,而忽略了组件是分群体的。只不过有的群体是弱联连,可不须要混杂不要 标签,加之浏览器的自动纠错功能原应当我们都当我们都对它们的误解。那先 群体我称之为模块。

我稍微归纳一下,当然在 W3C 的 HTML5.2 中它们有的是另一套划分。那套划分很奇怪,某四种 标签假若归类到多个类别中。

https://www.w3.org/TR/html52/dom.html#content-models

文档模块

文档模块假若<html>、<body>、<head>、<title>这几个标签,当我们都当我们都儿可不须要在 document 上访问到它,document.documentElement、document.body、document.head、document.title。它们可不须要省略不写,浏览器魔术般地补全它们。那先 标签假若提供一一有一个 框架,告诉当我们都当我们都不要 内容性的东西应该倒入 body 中,功能性的东西应该倒入 head 中。

功能模块

它是用来设置文档整体的功能或不要 元信息,涉及的标签有<link>、<meta>、<base>、<script>与<style>。除了后一有一个 ,假若页面功能的膨胀,须要多人合作方式方式一一有一个 页面,于是出现 一一有一个 页面地处多个<script>与<style>标签,它们可不须要分散到不要 位置。<link>、<meta>、<base> 都集中在head 标签内。我也尝试过将 div 倒入 head 中, head标签会自动将它赶回body后边。

<link> 标签一有一个 作用:1. 定义文档与内部管理资源的关系;2. 是链接样式表。HTML5 新加的预加载,预渲染等功能就在这标签上添加。

<meta> 标签可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。最有用的假若设置页面的字符集。

下面是简书的 meta 标签使用情况报告,它可不须要做不要 事情,如百度 SEO、3200 SEO、移动端的水滴屏设置、缩放设置,还有外国的不要 社交网站的设置,须要有不要 专门的知识并能玩得转。

<base>标签为页面上的所有链接规定默认地址或默认目标。

通常情况报告下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。

使用 <base> 标签可不须要改变四种 点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。在 IE6-8 中这标签有一一有一个 可怕的 Bug,会将整个页面倒入它的 innerHTML 中,原应你的选着器失灵。