所谓概述,就是介绍是什么的问题,本文档旨在介绍 HTML 与 CSS 的基础概念以及其他常见的术语
- 万维网(WEB):所谓万维网其实就是我们常说的互联网。
- 万维网联盟(W 3 C):这是一个非营利性组织,主要目的是定义互联网上的各种标准。
XML(extension markup language)
XML 是一个用来传输和存储有结构数据的一个格式,在平时我们传输的内容大多数都是字符串类型的,但使用的却大多都是有结构类型的数据,为了实现有结构类型数据和无结构类型的数据之间相互转换,就引入了 XML。XML 是一个早期使用的技术,目前用的更多的是 JSON。
什么叫有结构的数据和无结构数据的转换呢,这里给一个直观的理解:
用户 1:
姓名:张三
性别:男
年龄:29
用户 2:
姓名:李四
性别:男
年龄:39这就是一个有结构的数据,而无结构的数据其实就是完完全全一个字符串,如果我们直接用拼接的方式把上面的数据转换为字符串,那就是这个效果:"用户 1:姓名:张三性别:男年龄:29用户 2:姓名:李四性别:男年龄:39,很显然,如果要把这一个字符串变回原来那样有结构的数据,就很容易产生歧义,例如姓名是 "张三性" 还是 "张三",尽管我们人类一眼就能看出来,但计算机可没有那么智能,在他眼里这一串就是一串文本。为了消除这种歧义,就引入了 XML,我们把上列数据存储为 XML 格式,就是这个样子:
xml
<用户1>
<姓名>张三</姓名>
<性别>张三<性别/>
<年龄>张三<年龄/>
<用户1/>
<用户2>
<姓名>张三</姓名>
<性别>张三<性别/>
<年龄>张三<年龄/>
<用户2/>我们通过拼接的方式将上面的 XML 结构转换为字符串,就是这样:"<用户1><姓名>张三</姓名><性别>张三<性别/><年龄>张三<年龄/><用户1/><用户2><姓名>张三</姓名><性别>张三<性别/><年龄>张三<年龄/><用户2/>" 。这个字符串就和前面那个不一样了,我们是有能力将这个字符串毫无歧义地还原为原先有结构数据的。
其实从这里读者应该能看出来,XML 主要就是一个用字符串来无歧义地存储有结构数据的格式。XML不是本文的重点,所以这里不再详细展开。
HTML (hyper text markup language)
HTML 是一个用来定义页面结构的标记性语言,注意,这虽然是一种语言,但并不是编程语言,标记语言和编程语言的区别相信学到 JavaScript 之后读者就能认识到了,这里按下不表。
HTML 与 XML 的风格非常类似,但是 HTML 和 XML 的设计目的是不一样的,HTML 其实是用来构建网页结构的,而 XML 是用来存储数据的,这一点务必清楚。
那什么叫构建网页结构呢,这里给出一个例子,这里先介绍一个 h 系列标签,h 系列标签一共有六个,分别是 h1 到 h6,分别对应一级标题到六级标题,当我们的网页中想要添加一个三级标题,我们就使用 h3 标签即可,从下图可以看到,百度搜索网页的标题使用的就是三级标题,所以使用了 h3 标签

一个网页是由各种各样的HTML标签构建出来的,不同的标签具有不同的含义,标签之间的嵌套关系就构成了网页的整体结构。
CSS (Cascading Style Sheets)
一个网页应该由结构,样式和行为三部分组成,网站结构的定义前面我们已经说过了,就是HTML,网站样式的定义就是 CSS,而网站行为的定义用的是 JavaScript。下面简单对结构样式和行为做一个简单的介绍。
- 结构:结构是由 HTML 定义的,HTML 中有很多标签(也称元素),不同的标签有不同的含义,各种标签之间的嵌套关系就构成了网页的整体结构。
- 样式:样式是用 CSS 定义的,如果说 HTML 是搭建网页的结构,那么 CSS 就是在网页结构的基础上做美化,凡是涉及到显示相关的,例如字体大小,背景颜色,我们都可以称为样式。
- 行为:行为是用 JavaScript 定义的,有了结构和样式之后,网站还必须具备一定的功能和用户产生交互,比如用户点击某个按钮后应该执行某些操作,这些都是网站的行为。
我们大多数时候见到 HTML 和 CSS 都是在浏览器中,但实际上像微信小程序这些本质上也是一个网页,在微信小程序中,只需要内置一个浏览器内核就可以像浏览器一样渲染 HTML+CSS
浏览器其实分了两部分,shell+core,shell 其实就是一个外壳,比如浏览器地址栏,浏览器收藏夹,浏览器设置页面这些,而 core 则专注于和网页相关的操作,core 本身又可以拆分为很多部分,比如有专门执行 js 的引擎,有专门负责渲染 HTML+CSS 的引擎等等。
市面上有很多浏览器,但并不是所有浏览器都有自己的内核,比如国内的浏览器基本都用的其他公司的内核,常见浏览器内核如下 IE:Trident(弃用) Opera:Presto(弃用) firefox:Gecko Chome:Blink Safari:Webkit