字符实体

思考:我们编写的HTML代码会被浏览器解析
如下代码是如何被解析的呢?
- 如果你使用小于号(<) , 浏览器会将其后的文本解析为一个tag
- 但是在某些情况下, 我们确实需要编写一个小于号(<)
- 这个时候我们就可以使用字符实体
- <span><hehe</span>

HTML 实体是一段以连字号(&)开头的,以分号(;)结尾的文本(字符串):
- 实体常常用于显示保留字符(这些字符会被解析为HTML代码)和 不可见字符(如 “不换行空格”)
- <span>&lt;hehehe</span>
- 常用的字符实体有 &nbsp; &lt; &gt;

认识URL

URL 代表的是统一资源定位符(Uniform Resource Locator)
通俗点说: URL 无非就是一个给定的独特资源在 Web 上的地址
- 理论上说,每个有效的 URL 都指向一个唯一的资源;
- 这个资源可以是一个 HTML 页面, 一个 CSS 文档, 一幅图像, 等等;

URL 的格式

URL 的标准格式如下
[协议类型]://[服务器地址]:[端口号]/[文件路径][文件名]?[查询]#[片段ID]

URI 的区别

URI的区别有:
- URI = Uniform Resource Identifier 统一资源标识符,用于标识 Web 技术使用的逻辑或物理资源.
- URL = Uniform Resource Locator 统一资源定位符,俗称网络地址,相当于网络中的门牌号
URI在某一规则下能把一个资源独一无二的识别出来
- URL作为一个网络web资源的地址,可以唯一的将一个资源识别出来,所以URL是一个URI;
- 所以 URLURI 的一个子集;
- 但是 URI 并不一定是 URL

locators are also identifiers, so every URL is also a URI, but there are URIs which are not URLs

元素的语义化

元素的语义化:用正确的元素做正确的事情。

理论上来说,所有的HTML元素,我们都能实现相同的事情:

标签语义化的好处
- 方便代码维护;
- 减少让开发者之间的沟通成本;
- 能让语音合成工具正确识别网页元素的用途,以便作出正确的反应;
- 有利于SEO;

什么是SEO?

搜索引擎优化(英语:search engine optimization,缩写为SEO)是通过了解搜索引擎的运作规则来调整网站,以及提高网站 在有关搜索引擎内排名的方式。

蛋糕网站为例

认识字符编码

计算机是干什么的?
- 计算机一开始发明出来时是用来解决数字计算问题的,后来人们发现,计算机还可以做更多的事,例如文本处理。
- 但计算机其实挺笨的,它只“认识”010110111000…这样由0和1两个数字组成的二进制数字;
- 这是因为计算机的底层硬件实现就是用电路的开和闭两种状态来表示0和1两个数字的。
- 因此,计算机只可以直接存储和处理二进制数字

为了在计算机上也能表示、存储和处理像文字、符号等等之类的字符,就必须将这些字符转换成二进制数字
- 当然,肯定不是我们想怎么转换就怎么转换,否则就会造成同一段二进制数字在不同计算机上显示出来的字符不一样的情况, 因此必须得定一个统一的、标准的转换规则

字符编码的发展历史可以阅读简书一篇文章: https://www.jianshu.com/p/899e749be47c

link 元素

link 元素是外部资源链接元素,规范了文档与外部资源的关系
- link 元素通常是在 head 元素中

最常用的链接是样式表(CSS)
- 此外也可以被用来创建站点图标(比如 favicon 图标)、

link 元素常见的属性
- href:此属性指定被链接资源的 URLURL 可以是绝对的,也可以是相对的
- rel:指定链接类型,常见的链接类型:链接类型 - HTML(超文本标记语言) | MDN (mozilla.org)
- icon:站点图标
- stylesheetcss 样式

认识进制

进制的概念
- 维基百科:进位制是一种记数方式,亦称进位计数法或位值计数法。
- 通俗理解:当数字达到某个值,进一位(比如从1位变成2位)

按照进制的概念,来理解一些十进制:
- 当数字到9的时候,用一位已经表示不了了,那么就进一位变成2位。
- 在东北没有什么是一顿烧烤不能解决的,如果有,那就两顿。

按照上面的来理解,二进制、八进制、十六进制
- 二进制:当数字到1的时候,用一位已经表示不了了,那么就进一位。
- 八进制:当数字到7的时候,用一位已经表示不了了,那么就进一位。
- 十六进制:等等,用一位如何表示十六个数字呢?a(10)、b(11)、c(12) 、 d(13) 、 e(14) 、 f(15)

OK,下面我们简单学习一下计算机中的二进制、八进制、十六进制。

人类的十进制

学习编程语言,需要了解进制的概念:
- 我们平时使用的数字都是十进制的,当我写下一个数字的时候,你会默认当做十进制来使用
- 从发明数字的开始,人类就使用十进制,原因可能是人类正好十根手指。
- 如果人类有八根手指,现在用的可能是八进制。

所以说,十进制就是放之四海而皆准的常理吗?
- 并不见得,计算机就认为二进制、八进制、十六进制更符合计算机思维

常识就是人到十八岁为止所累积的各种偏见。
Common sense is the collection of prejudices acquired by age eighteen.
阿尔伯特·爱因斯坦(Albert Einstein)

计算机中的进制

为什么计算机更喜欢二进制呢?
- 前面我们已经介绍过了为什么计算机更喜欢二进制了; 
- 和其底层的原理有关系;

如何表示二进制、八进制、十六进制?
- 二进制(0b开头, binary):其中的数字由0、1组成,可以回顾之前学习过的机器语言。
- 八进制(0o开头, Octonary):其中的数字由0~7组成。
- 十六进制(0x开头, hexadecimal):其中的数字由0~9和字母a-f组成(大小写都可以)

十进制 or 二进制:
- 虽然计算机更喜欢二进制, 但是编程中我们还是以十进制为主.
- 因为高级编程语言的目的就是更加接近自然语言, 让我们人类更容易理解

进制之间的转换
十进制转其他进制:
- 整除, 取余数.
其他进制转十进制:
- 比如二进制的1001转成十进制: 1 * 2³ + 0 * 2² + 0 * 2 + 1 = 9
- 比如八进制的1234转成十进制: 1 * 8³ + 2 * 8² + 3 * 8 + 4 = 668
- 比如十六进制的522转成十进制: 5 * 16² + 2 * 16 + 2 = 1314
二进制转八进制:
- 三位转成一位八进制
二进制转十六进制:
- 四位转成一位十六进制

如果520情人节忘记了,给大家一个建议,在522那天过,因为十六进制的522,对应的十进制是1314。

CSS颜色的表示方法

在CSS中,颜色,有以下几种表示方法:

颜色关键字(color keywords):
- 是不区分大小写的标识符,它表示一个具体的颜色;
- 可以表示哪些颜色呢?
- https://developer.mozilla.org/zh-CN/docs/Web/CSS/color_value#语法

RGB颜色:
- RGB是一种色彩空间,通过R(red,红色)、G(green,绿色)、B(blue,蓝色)三原色来组成了不同的颜色; ✓ 也就是通过调整这三个颜色不同的比例,可以组合成其他的颜色;
- RGB各个原色的取值范围是 0~255;

RGB的表示方法

RGB颜色可以通过以#为前缀的十六进制字符和函数(rgb()、rgba())标记表示

方式一:十六进制符号: #RRGGBB[AA]
- R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F);A是可选的
- 比如 #ff0000 等价于 #ff0000ff ;
方式二:十六进制符号:#RGB[A]
- R(红)、G(绿)、B (蓝)和A (alpha)是十六进制字符(0–9、A–F);
- 三位数符号( #RGB )是六位数形式( #RRGGBB )的减缩版。
- 比如, #f09 和 #ff0099 表示同一颜色。
- 四位数符号( #RGBA )是八位数形式( #RRGGBBAA )的减缩版。
- 比如, #0f38 和 #00ff3388 表示相同颜色。
方式三:函数符: rgb[a](R, G, B[, A])
- R(红)、G(绿)、B (蓝)可以是<number>(数字),或者<percentage>(百分比),255相当于100%。
- A(alpha)可以是0到1之间的数字,或者百分比,数字1相当于100%(完全不透明)。

Chrome浏览器开发者工具

打开Chrome调试工具:
- 方式一:右键 – 检查
- 方式二:快捷键 – F12

其他技巧:
- 快捷键:ctrl + 可以调整页面或者调试工具的字体大小;
- 可以通过删除某些元素来查看网页结构;
- 可以通过增删 css 来调试网页样式;

浏览器渲染的流程