From 059fb8f8394b11d9bcb022304416077aa4aa620c Mon Sep 17 00:00:00 2001 From: qianguyihao Date: Wed, 1 Apr 2020 16:18:21 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=88=9D=E8=AF=86HTML?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01-HTML/02-浏览器的介绍.md | 2 + 01-HTML/03-初识HTML.md | 420 ++++++++++++++++------------- 02-CSS基础/02-CSS属性:背景属性.md | 17 +- 03-CSS进阶/CSS开发积累.md | 23 ++ 18-推荐链接/04-前端文章推荐.md | 9 +- 5 files changed, 274 insertions(+), 197 deletions(-) diff --git a/01-HTML/02-浏览器的介绍.md b/01-HTML/02-浏览器的介绍.md index f014866..c04f77f 100644 --- a/01-HTML/02-浏览器的介绍.md +++ b/01-HTML/02-浏览器的介绍.md @@ -74,6 +74,8 @@ ## 浏览器工作原理 +> 这一小段有些深入,小白可以暂时跳过,以后再来看。 + ![](http://img.smyhvae.com/20180124_1700.png) 1、User Interface 用户界面,我们所看到的浏览器 diff --git a/01-HTML/03-初识HTML.md b/01-HTML/03-初识HTML.md index 30587fd..9695d76 100644 --- a/01-HTML/03-初识HTML.md +++ b/01-HTML/03-初识HTML.md @@ -1,5 +1,4 @@ - ## 本文主要内容 - 头标签 @@ -8,13 +7,14 @@ - 超链接 `` - 图片标签 `` - ## 编辑器相关 前端开发的编辑器软件,我首先推荐 VS Code,其次推荐Sublime Text。 有人说 WebStorm 也不错?但真实情况是,自从VS Code 问世之后,用 WebStorm 的人越来越少了。 +PS:文件的后缀名不能决定文件格式,只能决定打开文件打开的方式。 + ### VS Code 的使用 详情请移步至:[第一次使用VS Code时你应该知道的一切配置](https://github.com/qianguyihao/Web/blob/master/00-%E5%89%8D%E7%AB%AF%E5%B7%A5%E5%85%B7/01-VS%20Code%E7%9A%84%E4%BD%BF%E7%94%A8.md) @@ -23,7 +23,6 @@ 详情请移步至:[Sublime Text使用技巧](https://github.com/qianguyihao/Mac/blob/master/05-%E5%85%A8%E5%B9%B3%E5%8F%B0%E8%BD%AF%E4%BB%B6/Sublime%20Text%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7.md) - ## HTML的概述 ### HTML的概念 @@ -42,12 +41,11 @@ HTML 不是一种编程语言,是一种描述性的**标记语言**。 (2)不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件进行连接。即:超级链接文本。 - ### 概念:标记语言 HTML 不是一种编程语言,是一种描述性的**标记语言**。这主要有两层含义: -(1)**标记语言是一套标记标签**。比如:超链接标签``、图片标签``、一级标题标签`

`等等,它们都是属于 HTML 标签。 +(1)**标记语言是一套标记标签**。比如:标签``表示超链接、标签``表示图片、标签`

`表示一级标题等等,它们都是属于 HTML 标签。 说的通俗一点就是:网页是由网页元素组成的,这些元素是由 HTML 标签描述出来,然后通过浏览器解析,就可以显示给用户看了。 @@ -55,24 +53,22 @@ HTML 不是一种编程语言,是一种描述性的**标记语言**。这主 ### HTML是负责描述文档语义的语言 -HTML 中,除了**语义**,其他什么都没有。 +HTML 格式的文件是一个纯本文文件(就是用txt文件改名而成),用一些标签来描述语义,这些标签在浏览器页面上是无法直观看到的,所以称之为“超文本标记语言”。 -HTML 是一个纯本文文件(就是用txt文件改名而成),用一些标签来描述语义,这些标签在浏览器页面上是无法直观看到的,所以称之为“超文本标记语言”。 - -所以,接下来,我们需要要学习一堆 HTML 中的标签对,这些标签对能够给文本不同的语义。 +接下来,我们需要学习 HTML 中的很多“标签对儿”,这些“标签对儿”能够给文本不同的语义。 比如,面试的时候问你,`

` 标签有什么作用? - 正确答案:给文本增加主标题的语义。 - 错误答案:给文字加粗、加黑、变大。 -关乎“语义”的更深刻的理解,等接下来我们学习了各种标签,就明白了。 +关乎“语义”的更深刻理解,等接下来我们学习了各种标签,就明白了。 ## HTML的历史 ![html中标签发展趋势](http://img.smyhvae.com/20151001_1001.png) -我们专门来对XHTML做一个介绍。 +其中,我们专门来对XHTML做一个介绍。 **XHTML介绍:** XHTML:Extensible Hypertext Markup Language,可扩展超文本标注语言。 @@ -87,173 +83,74 @@ XHTML是**严格的、纯净的**HTML。 - 网页 :由各种标记组成的一个页面就叫网页。 - 主页(首页) : 一个网站的起始页面或者导航页面。 -- 标记: `

`称为开始标记 ,`

`称为结束标记,也叫标签。每个标签都规定好了特殊的含义。 -- 元素:`

内容

`称为元素. +- 标记: 比如`

`称为开始标记 ,`

`称为结束标记,也叫标签。每个标签都规定好了特殊的含义。 +- 元素:比如`

内容

`称为元素. - 属性:给每一个标签所做的辅助信息。 -- xhtml: 符合XML语法标准的HTML。 -- dhtml:dynamic,动态的。`javascript + css + html`合起来的页面就是一个dhtml。 -- http:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP:邮件传输协议,ftp:文件传输协议。 +- XHTML:符合XML语法标准的HTML。 +- DHTML:dynamic,动态的。`javascript + css + html`合起来的页面就是一个 DHTML。 +- HTTP:超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP:邮件传输协议,FTP:文件传输协议。 -## HTML的编辑工具 +## 书写第一个 HTML 页面 -> 用的最多的编辑器是: VS Code 和 Sublime Text。 +我们打开 VS Code 软件,新建一个文件,名叫`test.html`(注意,文件名是`test`,后缀名是`html`),保存到本地。 -- VS Code:最火的前端代码编辑器。 -- Sublime Text:很轻量的代码编辑器。 -- NotePad:记事本。 -- EditPlus:语法高亮显示。技巧: 根据颜色判断单词是否出错 (不是100%)。不好的地方:没有代码提示。 -- UltraEdit:根据颜色判断单词是否出错,可以显示2进制数据。 -- dw(dreamweaver,专业工具) :建立WEB站点和应用程序的专业工具。它将布局功能、开发工具、代码编辑组合在一起。有代码提示。 +紧接着,在文件里,输入`html:5`,然后按一下键盘上的`Tab`键,就可以自动生成如下内容: -PS:后缀名不能决定文件格式,只能决定打开文件打开的方式。 +```html + + + + + + Document + + -## 计算机编码介绍 + + +``` -计算机,不能直接存储文字,存储的是编码。 +上面的内容,就是 html 页面的骨架。我们在此基础之上,新增几个标签,完整代码如下: -计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们定义一套规则来表示。假如:A用110表示,B用111表示等。 +```html + + + + + + Document + + +

我是三级标题

+ +
我是超链接,可以点击一下 + + -**ASCII码:** -美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。 - 美国的国家语言是英语,只要能表示0-9、a-z、A-Z、特殊符号。 +``` -**ANSI编码:** -**每个国家为了显示本国的语言,都对ASCII码进行了扩展**。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。例如: -中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。 -日本的ANSI编码是JIS编码。 -台湾的ANSI编码是BIG5编码(繁体)。 +标签写完之后,我们用 chrome 浏览器打开上面这个`test.html`文件,看看页面效果: -**GBK:** -对GB2312进行了扩展,用来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码位。K的含义就是“扩展”。 - -**Unicode编码(统一编码):** -用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。A的Unicode编码是0000 0000 0000 0000 0000 0000 0100 0000 - -**UTF-8(Unicode Transform Format)编码:** -根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用2个字节表示。 - -毫无疑问,开发中,都用**UTF-8**编码吧,准没错。 - -**中文能够使用的字符集两种:** - -- 第一种:UTF-8。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语…… - -- 第二种:GBK(对GB2312进行了扩展)。gb2312 是国标,是中国的字库,里面**仅**涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。 - -字库规模: UTF-8(字全) > gb2312(只有汉字) - -**重点1:避免乱码** - -我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码!(重点)。 - -当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: `文件→ set File Encoding to → Chinese Simplified(GBK)`。 +到此,第一个简单的 HTML 页面就写完了。是不是很有成就感? -**重点2:UTF-8和gb2312的比较** +## HTML结构详解 -保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快) - -总结: -- UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿; -- gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。 - - -列出2个使用情形: - -1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。 -2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。 - -我们亲测: -- qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。 -- 新华网藏语频道,使用的是UTF-8,保证字符集的数量。 - -我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到meta标签中的charset属性即可。 - -那么,我们为什么可以查看网页的源代码呢?因为这个打开的网页已经存到我的临时文件夹里了,临时文件夹里的html是纯文本文件,纯文本文件自然可以查看网页的源代码了。 - -## HTML颜色介绍 - -**颜色表示:** - - - 纯单词表示:red、green、blue、orange、gray等 - - 10进制表示:rgb(255,0,0) - - 16进制表示:#FF0000、#0000FF、#00FF00等 - -**RGB色彩模式:** - - - 自然界中所有的颜色都可以用红、绿、蓝(RGB)这三种颜色波长的不同强度组合而得,这就是人们常说的三原色原理。 - - RGB三原色也叫加色模式,这是因为当我们把不同光的波长加到一起的时候,可以得到不同的混合色。例:红+绿=黄色,红+蓝=紫色,绿+蓝=青 - - 在数字视频中,对RGB三基色各进行8位编码就构成了大约1678万种颜色,这就是我们常说的真彩色。所有显示设备都采用的是RGB色彩模式。 - - RGB各有256级(0-255)亮度,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。 - -## HTML的规范 - -- HTML是一个弱势语言 -- HTML不区分大小写 -- HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符,比如dos系统) -- HTML的结构: - - 声明部分:主要作用是用来告诉浏览器这个页面使用的是哪个标准。是HTML5标准。 - - head部分:将页面的一些额外信息告诉服务器。不会显示在页面上。 - - body部分:我们所写的代码必须放在此标签內。 - -目前,IE浏览器是完全不支持H5的,支持最好的是Opera浏览器,可以支持95%以上;其次是google,可以支持一部分H5。 - -### 1、编写XHTML的规范: - -(1)所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:`

` - -(2)所有的标记都必须小写。 - -(3)所有的标记都必须关闭。 - -- 双边标记:`` -- 单边标记:`
` 转成 `
` `
` 转成 `
`,还有`` - -(4)所有的属性值必须加引号。`` - -(5)所有的属性必须有值。`
`、`` - -(6)XHTML文档开头必须要有DTD文档类型定义 - -### 2、HTML的基本语法特性 - -#### (1)HTML对换行不敏感,对tab不敏感 - -HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。 - -也就是说,HTML不是依靠缩进来表示嵌套的,就是看标签的包裹关系。但是,我们发现有良好的缩进,代码更易读。要求大家都正确缩进标签。 - -百度为了追求极致的显示速度,所以HTML标签都没有换行、都没有缩进(tab),HTML和换不换行无关,标签的层次依然清晰,只不过程序员不可读了。如下图所示: - -![](http://img.smyhvae.com/20170629_2226.png) - -#### (2)空白折叠现象 - -HTML中所有的**文字之间**,如果有空格、换行、tab都将被折叠为一个空格显示。 - -举例如下: - -![](http://img.smyhvae.com/20170629_2230.jpg) - -#### (3)标签要严格封闭 - -标签不封闭是灾难性的。 - -标签不封闭的举例如下: - -![](http://img.smyhvae.com/20170629_2245.jpg) - -## 三、HTML结构详解 - -> 备注: -> - 所有的浏览器默认情况下都会忽略空格和空行 -> - 每个标签都有私有属性。也都有公有属性。 -> - html中表示长度的单位都是**像素**。HTML只有一种单位就是像素。 - -HTML标签通常是成对出现的(**双边标记**),比如 `
` 和 `
`,也有单独呈现的标签(**单边标记**),如:`
`、`
`和``等。 +HTML标签通常是成对出现的(**双边标记**),比如 `
` 和 `
`;也有少部分单标签(**单边标记**),如:`
`、`
`和``等。 属性与标记之间、各属性之间需要以空格隔开。属性值以双引号括起来。 + +#### html骨架标签分类 + +| 标签名 | 定义 | 说明 | +| ---------------- | :----: | :----------------------------- | +| `` | HTML标签 | 页面中最大的标签,我们成为根标签 | +| `` | 文档的头部 | 注意在head标签中我们必须要设置的标签是title | +| `` | 文档的标题 | 让页面拥有一个属于自己的网页标题 | +| `` | 文档的主体 | 元素包含文档的所有内容,页面内容 基本都是放到body里面的 | + + ### 快速生成 html 的骨架 **方式1**:在 VS Code 中新建 html 文件,输入`html:5`,按 `Tab`键后,自动生成的代码如下: @@ -289,7 +186,7 @@ HTML标签通常是成对出现的(**双边标记** ``` -**方式3**:在Sublime Text中安装`Emmet`插件。新建html文件,输入`html:xt`,按`Tab`键后(或者按Ctrl+E),自动生成的代码如下: +**方式3**:在Sublime Text中安装`Emmet`插件。新建html文件,输入`html:xt`,按`Tab`键后,自动生成的代码如下: ```html @@ -306,16 +203,19 @@ HTML标签通常是成对出现的(**双边标记** 上面的方式2和方式3中,我们会发现,第一行的内容有些不太一样,这就是我们接下来要讲的**文档声明头**。 + + + + ### 1、文档声明头 +任何一个标准的HTML页面,第一行一定是一个以``开头的语句。这一行,就是文档声明头,即 DocType Declaration,简称DTD。 -任何一个标准的HTML页面,第一行一定是一个以``开头的语句。 - -这一行,就是文档声明头,DocType Declaration,简称DTD。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。 +**DTD可告知浏览器文档使用哪种 HTML 或 XHTML 规范**。 #### HTML4.01有哪些规范呢? -**HTML4.01**这个版本是IE6开始兼容的。**HTML5是IE9开开始兼容的**。如今,手机、移动端的网页,就可以使用HTML5了,因为其兼容性更高。 +**HTML4.01**这个版本是IE6开始兼容的。**HTML5是IE9开始兼容的**。如今,手机、移动端的网页,就可以使用HTML5了,因为其兼容性更高。 说个题外话,html1 至 html3 是美国军方以及高等研究所用的,并未对外公开。 @@ -329,24 +229,42 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己 下面对上图中的三种小规范进行解释: -- **strict**:表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。 -比如,u标签,就是给一个本文加下划线,但是这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。 -那怎么给文本增加下划线呢?今后的css将使用css属性来解决。 -那么,XHTML1.0更为严格,因为这个体系本身规定比如标签必须是小写字母、必须严格闭合标签、必须使用引号引起属性等等。 +**strict**: -- **Transitional**:表示“普通的”,这种模式就是没有一些别的规范。 +表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。 +比如,u标签,就是给一个本文加下划线,但是这和HTML的本质有冲突,因为HTML最好是只负责语义,不要负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。 -- **Frameset**:表示“框架”,在框架的页面使用。 +那怎么给文本增加下划线呢?今后将使用css属性来解决。 + +XHTML1.0更为严格,因为这个体系本身规定比如标签必须是小写字母、必须严格闭合标签、必须使用引号引起属性等等。 + +**Transitional**:表示“普通的”,这种模式就是没有一些别的规范。 + +**Frameset**:表示“框架”,在框架的页面使用。 在sublime输入的html:xt,x表示XHTML,t表示transitional。 -在HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了(W3C自己打脸了): +在HTML5中极大的简化了DTD,也就是说HTML5中就没有XHTML了。HTML5的DTD(文档声明头)如下: ``` ``` -### 2、头标签 +### 2、页面语言 `lang` + +下面这行标签,用于指定页面的语言类型: + +```html + +``` + +最常见的语言类型有两种: + +- en:定义页面语言为英语。 + +- zh-CN:定义页面语言为中文。 + +### 2、头标签 `head` #### html5 的比较完整的骨架: @@ -358,7 +276,7 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己 - + Document @@ -373,7 +291,7 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己 - 问:网页的head标签里面,表示的是页面的配置,有什么配置? - 答:字符集、关键词、页面描述、页面标题、IE适配、视口、iPhone小图标等等。 -头标签都放在头部分之间。包括:``、`<base>`、`<meta>`、`<link>` +头标签内部的常见标签如下: - `<title>`:指定整个网页的标题,在浏览器最上方显示。 - `<base>`:为页面上的所有链接规定默认地址或默认目标。 @@ -383,12 +301,7 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己 **meta 标签**: -上面的`<meta>`标签都不用记,但是另外还有一个`<meta>`标签是需要记住的: - -```html -<meta http-equiv="refresh" content="3;http://www.baidu.com"> -``` -上面这个标签的意思是说,3秒之后,自动跳转到百度页面。 +meta表示“元”。“元”配置,就是表示基本的配置项目。 常见的几种 meta 标签如下: @@ -398,12 +311,13 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> ``` -字符集用meta标签中的`charset`定义,meta表示“元”。“元”配置,就是表示基本的配置项目。 +字符集用meta标签中的`charset`定义,charset就是charactor set(即“字符集”),即**网页的编码方式**。 -charset就是charactor set(即“字符集”)。 +**字符集**(Character set)是多个字符的集合。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。 -浏览器就是通过meta来看网页是什么字符集的。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就是乱码。 +上面这行代码非常关键, 是必须要写的代码,否则可能导致乱码。比如你保存的时候,meta写的和声明的不匹配,那么浏览器就是乱码。 +utf-8是目前最常用的字符集编码方式,常用的字符集编码方式还有gbk和gb2312等。关于“编码方式”,我们在下一段会详细介绍。 (2)视口 viewport: @@ -415,7 +329,7 @@ charset就是charactor set(即“字符集”)。 viewport 这个知识点,初学者还比较难理解,以后学 Web 移动端的时候会用到。 -(2)定义“关键词”: +(3)定义“关键词”: 举例如下: @@ -425,7 +339,7 @@ viewport 这个知识点,初学者还比较难理解,以后学 Web 移动端 这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。 -(3)定义“页面描述”: +(4)定义“页面描述”: meta除了可以设置字符集,还可以设置关键字和页面描述。 @@ -441,6 +355,13 @@ meta除了可以设置字符集,还可以设置关键字和页面描述。 ![](http://img.smyhvae.com/20170629_1743.png) +上面的几种`<meta>`标签都不用记,但是另外还有一个`<meta>`标签是需要记住的: + +```html +<meta http-equiv="refresh" content="3;http://www.baidu.com"> +``` +上面这个标签的意思是说,3秒之后,自动跳转到百度页面。 + **title 标签**: @@ -449,7 +370,7 @@ meta除了可以设置字符集,还可以设置关键字和页面描述。 ```html <title>网页的标题 ``` -title也是有助于SEO搜索引擎优化的。 +title标签也是有助于SEO搜索引擎优化的。 **base标签**: @@ -459,9 +380,10 @@ title也是有助于SEO搜索引擎优化的。 base 标签用于指定基础的路径。指定之后,所有的 a 链接都是以这个路径为基准。 -### 3、``标签的属性 +### 3、``标签 + +``标签的属性有: -其属性有: - `bgcolor`:设置整个网页的背景颜色。 - `background`:设置整个网页的背景图片。 - `text`:设置网页中的文本颜色。 @@ -478,7 +400,123 @@ base 标签用于指定基础的路径。指定之后,所有的 a 链接都是 ![](http://img.smyhvae.com/2015-10-02-cnblogs_html_05.gif) -接下来,我们讲一下``里的各种标签的属性。 + +## 计算机编码介绍 + +计算机,不能直接存储文字,存储的是编码。 + +计算机只能处理二进制的数据,其它数据,比如:0-9、a-z、A-Z,这些字符,我们可以定义一套规则来表示。假如:A用110表示,B用111表示等。 + +**ASCII码:** +美国发布的,用1个字节(8位二进制)来表示一个字符,共可以表示2^8=256个字符。 + 美国的国家语言是英语,只要能表示0-9、a-z、A-Z、特殊符号。 + +**ANSI编码:** +**每个国家为了显示本国的语言,都对ASCII码进行了扩展**。用2个字节(16位二进制)来表示一个汉字,共可以表示2^16=65536个汉字。例如: +中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。 +日本的ANSI编码是JIS编码。 +台湾的ANSI编码是BIG5编码(繁体)。 + +**GBK:** +对GB2312进行了扩展,用来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码位。K的含义就是“扩展”。 + +**Unicode编码(统一编码):** +用4个字节(32位二进制)来表示一个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话一个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。A的Unicode编码是0000 0000 0000 0000 0000 0000 0100 0000 + +**UTF-8(Unicode Transform Format)编码:** +根据字符的不同,选择其编码的长度。比如:一个字符A用1个字节表示,一个汉字用2个字节表示。 + +毫无疑问,开发中,都用**UTF-8**编码吧,准没错。 + +**中文能够使用的字符集两种:** + +- 第一种:UTF-8。UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,比如阿拉伯文、汉语、鸟语…… + +- 第二种:GBK(对GB2312进行了扩展)。gb2312 是国标,是中国的字库,里面**仅**涵盖了汉字和一些常用外文,比如日文片假名,和常见的符号。 + +字库规模: UTF-8(字很全) > gb2312(只有汉字) + +**重点1:避免乱码** + +我们用meta标签声明的当前这个html文档的字库,一定要和保存的文件编码类型一样,否则乱码(重点)。 + +拿 sublime编辑器举例,当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: `文件→ set File Encoding to → Chinese Simplified(GBK)`。VS Code 的道理一样。 + + +**重点2:UTF-8和gb2312的比较** + +保存大小:UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快) + +总结: +- UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿; +- gb2312:字少,只用中文和少数外语和符号,但是尺寸小,文件小巧。 + + +列出2个使用情形: + +1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。 +2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。 + +我们亲测: +- qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。 +- 新华网藏语频道,使用的是UTF-8,保证字符集的数量。 + +我们是怎么查看网页的编码方式的呢?在浏览器中打开网页,右键,选择“查看网页源代码”,找到meta标签中的charset属性即可。 + +那么,我们为什么可以查看网页的源代码呢?因为这个打开的html网页已经存到我的临时文件夹里了,临时文件夹里的html是纯文本文件,纯文本文件自然可以查看网页的源代码。 + +## HTML的规范 + +- HTML不区分大小写,但HTML的标签名、类名、标签属性、大部分属性值建议统一用小写。 +- HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符,比如dos系统) + +### 1、编写XHTML的规范: + +(1)所有标记元素都要正确的嵌套,不能交叉嵌套。正确写法举例:`

` + +(2)所有的标记都必须小写。 + +(3)所有的标签都必须闭合。 + +- 双标签:`` + +- 单标签:`
` 建议写成 `
` `
` 建议转成 `
`,还有`` + +(4)所有的属性值必须加引号。`` + +(5)所有的属性必须有值。`
`、`` + +(6)XHTML文档开头必须要有DTD文档类型定义。 + +### 2、HTML的基本语法特性 + +#### (1)HTML对换行不敏感,对tab不敏感 + +HTML只在乎标签的嵌套结构,嵌套的关系。谁嵌套了谁,谁被谁嵌套了,和换行、tab无关。换不换行、tab不tab,都不影响页面的结构。 + +也就是说,HTML不是依靠缩进来表示嵌套的,而是看标签的嵌套关系。但是,我们发现有良好的缩进,代码更易读。建议大家都正确缩进标签。 + +百度为了追求极致的显示速度,所有HTML标签都没有换行、都没有缩进(tab),HTML和换不换行无关,标签的层次依然清晰,只不过程序员不可读了。如下图所示: + +![](http://img.smyhvae.com/20170629_2226.png) + +#### (2)空白折叠现象 + +HTML中所有的**文字之间**,如果有空格、换行、tab都将被折叠为一个空格显示。 + +举例如下: + +![](http://img.smyhvae.com/20170629_2230.jpg) + +#### (3)标签要严格封闭 + +标签不封闭是灾难性的。 + +标签不封闭的举例如下: + +![](http://img.smyhvae.com/20170629_2245.jpg) + + ## 我的公众号 diff --git a/02-CSS基础/02-CSS属性:背景属性.md b/02-CSS基础/02-CSS属性:背景属性.md index f0b237f..7f1713c 100644 --- a/02-CSS基础/02-CSS属性:背景属性.md +++ b/02-CSS基础/02-CSS属性:背景属性.md @@ -39,7 +39,7 @@ ## background-color:背景颜色的表示方法 -css2.1 中,背景颜色的表示方法有三种:单词、rgb表示法、十六进制表示法。 +css2.1 中,颜色的表示方法有三种:单词、rgb表示法、十六进制表示法。 比如红色可以有下面的三种表示方法: @@ -57,7 +57,7 @@ RGBA、HSLA可应用于**所有**使用颜色的地方。 ### 用英语单词表示 -能够用英语单词来表述的颜色,都是简单颜色。比如红色、绿色等。代码举例: +能够用英语单词来表述的颜色,都是简单颜色,比如red、green、blue、orange、gray等。代码举例: ```css background-color: red; @@ -94,11 +94,18 @@ background-color: rgb(255,255,0); border: 30px solid rgba(0, 255, 0, 0.3); ``` -解释: +**代码解释**: -- RGBA 即:Red、Green、Blue、Alpha +- RGBA 即:Red 红、Green 绿、Blue 蓝、Alpha 透明度。 -- R、G、B 的取值范围是:0~255 +- R、G、B 的取值范围是:0~255;透明度的取值范围是 0~1。 + +**RGB色彩模式:** + + - 自然界中所有的颜色都可以用红、绿、蓝(RGB)这三种颜色波长的不同强度组合而得,这就是人们常说的三原色原理。 + - RGB三原色也叫加色模式,这是因为当我们把不同光的波长加到一起的时候,可以得到不同的混合色。例:红+绿=黄色,红+蓝=紫色,绿+蓝=青。 + - 在数字视频中,对RGB三基色各进行8位编码就构成了大约1678万种颜色,这就是我们常说的真彩色。所有显示设备都采用的是RGB色彩模式。 + - RGB各有256级(0-255)亮度,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。 ### 十六进制表示法 diff --git a/03-CSS进阶/CSS开发积累.md b/03-CSS进阶/CSS开发积累.md index f1aacf6..5828574 100644 --- a/03-CSS进阶/CSS开发积累.md +++ b/03-CSS进阶/CSS开发积累.md @@ -79,6 +79,29 @@ CSS的逗号一般写在()里。**不同属性值之间,用的是空格**, 这个场景下,别用background。直接放img元素就好了,将图片的高度设置为`auto`。 +### 2020-03-26-通过CSS扩大点击热区 + +```css +.button { + position: relative; + /* [其余样式] */ +} + +.button::before { + content: ''; + position: absolute; + top: -10px; + right: -10px; + bottom: -10px; + left: -10px; +} +``` +注意,button 里面不要写 `overflow: hidden` 属性,否则扩大的热区无效。 + + +参考链接: + + diff --git a/18-推荐链接/04-前端文章推荐.md b/18-推荐链接/04-前端文章推荐.md index 30bbe4b..2c86305 100644 --- a/18-推荐链接/04-前端文章推荐.md +++ b/18-推荐链接/04-前端文章推荐.md @@ -1 +1,8 @@ -04-前端文章推荐.md \ No newline at end of file + + +### 2020-03-31 + +- [基于Vue2.0 + elementUI 后台管理平台](https://www.jianshu.com/p/deeddeabdef8) + +这个elementUI的demo比较完整。项目地址在 [GitHub](https://github.com/xiahuahua/vue-admin-demo)上。 +