Web/01-html/01-html标签图文详解(一).md

1112 lines
42 KiB
Markdown
Raw Normal View History

2017-06-29 14:25:26 +08:00
2019-04-13 17:28:47 +08:00
> 本文最初于2015-10-01发表于[博客园](http://www.cnblogs.com/smyhvae/p/4850684.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我一起入门和进阶前端。
2018-01-03 22:58:04 +08:00
> 以下是正文。
2017-07-04 16:08:41 +08:00
2017-06-29 14:25:26 +08:00
国庆节快乐,还在加班的童鞋,良辰必有重谢!
## 本文主要内容
2017-06-29 14:30:05 +08:00
2017-06-29 14:38:21 +08:00
- 头标签
2019-10-03 17:18:39 +08:00
- 排版标签:`<p>`、 `<div>``<span>`、`<br>` 、 `<hr>``<center>``<pre>`
- 字体标记:`<h1>`、 `<font>``<b>``<u>` 、`<sup>` 、`<sub>`
- 超链接 `<a>`
- 图片标签 `<img>`
2017-06-29 14:25:26 +08:00
2017-06-29 14:30:05 +08:00
## 前言
2017-06-29 14:25:26 +08:00
2017-06-29 14:30:05 +08:00
### web标准
2017-06-29 14:25:26 +08:00
web标准介绍
- w3c万维网联盟组织用来制定web标准的机构组织
- web标准制作网页要遵循的规范。
- web标准规范的分类结构标准、表现标准、行为标准。
- 结构html。表现css。行为JavaScript。
web标准总结
- 结构标准相当于人的身体。html就是用来制作网页的。
2017-06-29 14:25:26 +08:00
- 表现标准: 相当于人的衣服。css就是对网页进行美化的。
- 行为标准: 相当于人的动作。JS就是让网页动起来具有生命力的。
2017-06-29 14:30:05 +08:00
### 浏览器介绍
2017-06-29 14:25:26 +08:00
浏览器是网页运行的平台常用的浏览器有IE、火狐Firefox、谷歌Chrome、猎豹浏览器、Safari和Opera等。如下图所示
2018-12-10 11:33:42 +08:00
![](http://img.smyhvae.com/20170628_1352.png)
2017-07-04 16:08:41 +08:00
2017-06-29 14:25:26 +08:00
浏览器内核:
|浏览器 | 内核|
|:-------------:|:-------------:|
|IE|trident |
|chrome / 欧鹏 |blink |
|火狐|gecko|
|Safari|webkit|
2017-12-20 22:54:44 +08:00
PS「浏览器内核」也就是浏览器所采用的「渲染引擎」渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。**渲染引擎是兼容性问题出现的根本原因。**
2017-06-29 14:25:26 +08:00
2017-06-29 14:30:05 +08:00
### Sublime Text 的使用
2017-06-29 14:25:26 +08:00
2019-10-03 16:25:14 +08:00
详情请移步至:[Sublime Text使用技巧](https://github.com/qianguyihao/Tools/blob/master/%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7/02-Sublime%20Text%E4%BD%BF%E7%94%A8%E6%8A%80%E5%B7%A7.md)
2017-06-29 14:25:26 +08:00
## 一、HTML的介绍
2017-06-29 14:30:05 +08:00
2017-06-29 14:25:26 +08:00
### 1、HTML的概述
2017-12-20 22:54:44 +08:00
2018-12-09 16:52:32 +08:00
**html**全称为HyperText Markup Language译为<font color=#0000ff>**超文本标记语言**</font>,不是一种编程语言,是一种描述性的标记语言,用于描述超文本中内容的显示方式。比如字体什么颜色,大小等。
2018-01-05 00:02:22 +08:00
2017-06-29 14:25:26 +08:00
- 超文本:音频,视频,图片称为超文本。
- 标记 <英文单词或者字母>称为标记一个HTML页面都是由各种标记组成。
2017-06-29 17:32:13 +08:00
**作用**HTML是负责描述文档**语义**的语言。
2017-06-29 14:25:26 +08:00
**注意**HTML语言不是一个编程语言(有编译过程),而是一个**标记语言**(<font color=#0000ff>**没有编译过程**</font>)HTML页面直接由浏览器解析执行。
2017-06-29 14:25:26 +08:00
#### HTML是负责描述文档语义的语言
2017-06-29 17:32:13 +08:00
html中除了**语义**,其他什么都没有。
2017-06-29 14:25:26 +08:00
html是一个纯本文文件就是用txt文件改名而成用一些标签来描述文字的语义这些标签在浏览器里面是看不到的所以称为“超文本”所以就是“超文本标记语言”了。
所以接下来我们肯定要学习一堆html中的标签对儿这些标签对儿能够给文本不同的语义。
比如面试的时候问你h1标签有什么作用
- 正确答案:给文本增加主标题的语义。
- 错误答案:给文字加粗、加黑、变大。
2017-06-29 17:32:13 +08:00
### 2、HTML的历史
2018-10-02 22:10:26 +08:00
![html中标签发展趋势](http://img.smyhvae.com/20151001_1001.png)
2017-06-29 14:25:26 +08:00
我们专门来对XHTML做一个介绍。
**XHTML介绍**
XHTMLExtensible Hypertext Markup Language可扩展超文本标注语言。
XHTML的主要目的是为了<font color="blue">**取代HTML**</font>也可以理解为HTML的升级版。
HTML的标记书写很不规范会造成其它的设备(ipad、手机、电视等)无法正常显示。
XHTML与HTML4.0的标记基本上一样。
XHTML是<font color="blue">**严格的、纯净的**</font>HTML。
2018-01-05 00:02:22 +08:00
我们稍后将对XHTML的编写规范进行介绍。
2017-12-20 22:54:44 +08:00
2017-06-29 17:32:13 +08:00
### 3、HTML的网络术语
2017-12-20 22:54:44 +08:00
- 网页 :由各种标记组成的一个页面就叫网页。
- 主页(首页) : 一个网站的起始页面或者导航页面。
2017-06-29 14:25:26 +08:00
- 标记: `<p>`称为开始标记 `</p>`称为结束标记,也叫标签。每个标签都规定好了特殊的含义。
- 元素:`<p>内容</p>`称为元素.
- 属性:给每一个标签所做的辅助信息。
- xhtml 符合XML语法标准的HTML。
- dhtmldynamic动态的。`javascript + css + html`合起来的页面就是一个dhtml。
2018-01-05 00:02:22 +08:00
- http超文本传输协议。用来规定客户端浏览器和服务端交互时数据的一个格式。SMTP邮件传输协议ftp文件传输协议。
2017-06-29 14:25:26 +08:00
2017-06-29 17:32:13 +08:00
### 4、HTML的编辑工具
2019-10-03 16:25:14 +08:00
> 用的最多的编辑器是: VS Code 和 Sublime Text。
- VS Code最火的前端代码编辑器。
- Sublime Text很轻量的代码编辑器。
2017-06-29 14:25:26 +08:00
- NotePad记事本。
- EditPlus语法高亮显示。技巧 根据颜色判断单词是否出错 不是100%)。不好的地方:没有代码提示。
- UltraEdit根据颜色判断单词是否出错可以显示2进制数据。
- dw(dreamweaver专业工具) 建立WEB站点和应用程序的专业工具。它将布局功能、开发工具、代码编辑组合在一起。有代码提示。
PS后缀名不能决定文件格式只能决定打开文件打开的方式。
2017-06-29 17:32:13 +08:00
### 5、计算机编码介绍
2018-01-07 22:09:48 +08:00
计算机,不能直接存储文字,存储的是编码。
2017-06-29 14:25:26 +08:00
计算机只能处理二进制的数据其它数据比如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^1665536个汉字。例如
中国的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**编码吧,准没错。
2018-01-07 22:09:48 +08:00
**中文能够使用的字符集两种:**
- 第一种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)`
**重点2UTF-8和gb2312的比较**
保存大小UTF-8更臃肿、加载更慢 > gb2312 (更小巧,加载更快)
总结:
- UTF-8字多有各种国家的语言但是保存尺寸大文件臃肿
- gb2312字少只用中文和少数外语和符号但是尺寸小文件小巧。
列出2个使用情形
1 你们公司是做日本动漫的经常出现一些日语动漫的名字网页要使用UTF-8。如果用gb2312将无法显示日语。
2 你们公司就是中文网页极度的追求网页的显示速度要使用gb2312。如果使用UTF-8将每个汉字多一个byte所以5000个汉字多5kb。
我们亲测:
- qq网、网易、搜狐都是使用gb2312。这些公司都追求显示速度。
- 新华网藏语频道使用的是UTF-8保证字符集的数量。
对了我们是怎么查看网页的编码方式的呢在浏览器中打开网页右键选择“查看网页源代码”找到me标签中的charset属性即可。
那么我们为什么可以查看网页的源代码呢因为这个打开的网页已经存到我的临时文件夹里了临时文件夹里的html是纯文本文件纯文本文件自然剋以查看网页的源代码了。
2017-06-29 17:32:13 +08:00
### 6、HTML颜色介绍
2017-06-29 14:25:26 +08:00
**颜色表示:**
2018-01-05 00:02:22 +08:00
2017-06-29 14:25:26 +08:00
- 纯单词表示red、green、blue、orange、gray等
- 10进制表示rgb(255,0,0)
- 16进制表示#FF0000、#0000FF、#00FF00等
**RGB色彩模式**
2018-01-05 00:02:22 +08:00
2017-06-29 14:25:26 +08:00
- 自然界中所有的颜色都可以用红、绿、蓝(RGB)这三种颜色波长的不同强度组合而得,这就是人们常说的三原色原理。
- RGB三原色也叫加色模式这是因为当我们把不同光的波长加到一起的时候可以得到不同的混合色。例红+绿=黄色,红+蓝=紫色,绿+蓝=青
- 在数字视频中对RGB三基色各进行8位编码就构成了大约1678万种颜色这就是我们常说的真彩色。所有显示设备都采用的是RGB色彩模式。
2017-12-20 22:54:44 +08:00
- RGB各有256级(0-255)亮度256级的RGB色彩总共能组合出约1678万种色彩即256×256×256=16777216。
2017-06-29 14:25:26 +08:00
## 二、HTML的规范
2017-06-29 14:38:21 +08:00
- HTML是一个弱势语言
- HTML不区分大小写
- HTML页面的后缀名是html或者htm(有一些系统不支持后缀名长度超过3个字符比如dos系统)
- HTML的结构
2018-01-07 22:09:48 +08:00
- 声明部分:主要作用是用来告诉浏览器这个页面使用的是哪个标准。<!doctype html>是HTML5标准。
- head部分将页面的一些额外信息告诉服务器。不会显示在页面上。
2017-12-20 22:54:44 +08:00
- body部分我们所写的代码必须放在此标签內。
2017-06-29 14:25:26 +08:00
目前IE浏览器是完全不支持H5的支持最好的是Opera浏览器可以支持95%以上其次是google可以支持一部分H5。
2018-01-05 00:02:22 +08:00
### 1、编写XHTML的规范
1所有标记元素都要正确的嵌套不能交叉嵌套。正确写法举例`<h1><font></font></h1>`
2所有的标记都必须小写。
3所有的标记都必须关闭。
- 双边标记:`<span></span>`
- 单边标记:`<br>` 转成 `<br />` `<hr>` 转成 `<hr />`,还有`<img src=“URL” />`
4所有的属性值必须加引号。`<font color="red"></font>`
5所有的属性必须有值。`<hr noshade="noshade">`、`<input type="radio" checked="checked" />`
6XHTML文档开头必须要有DTD文档类型定义
### 2、HTML的基本语法特性
#### 1HTML对换行不敏感对tab不敏感
2017-06-30 09:01:48 +08:00
HTML只在乎标签的嵌套结构嵌套的关系。谁嵌套了谁谁被谁嵌套了和换行、tab无关。换不换行、tab不tab都不影响页面的结构。
也就是说HTML不是依靠缩进来表示嵌套的就是看标签的包裹关系。但是我们发现有良好的缩进代码更易读。要求大家都正确缩进标签。
百度为了追求极致的显示速度所以HTML标签都没有换行、都没有缩进tabHTML和换不换行无关标签的层次依然清晰只不过程序员不可读了。如下图所示
2018-01-07 20:13:04 +08:00
![](http://img.smyhvae.com/20170629_2226.png)
2017-06-30 09:01:48 +08:00
2018-01-05 00:02:22 +08:00
#### 2空白折叠现象
2017-06-30 09:01:48 +08:00
2018-01-05 00:02:22 +08:00
HTML中所有的**文字之间**如果有空格、换行、tab都将被折叠为一个空格显示。
2017-06-30 09:01:48 +08:00
举例如下:
2017-07-04 16:08:41 +08:00
![](http://img.smyhvae.com/20170629_2230.jpg)
2017-06-30 09:01:48 +08:00
2018-01-05 00:02:22 +08:00
#### 3标签要严格封闭
2017-06-30 09:01:48 +08:00
标签不封闭是灾难性的。
标签不封闭的举例如下:
2018-01-03 22:58:04 +08:00
![](http://img.smyhvae.com/20170629_2245.jpg)
2017-12-21 21:43:41 +08:00
2018-01-07 22:49:45 +08:00
## 三、HTML结构详解
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
> 备注:
> - 所有的浏览器默认情况下都会忽略空格和空行
> - 每个标签都有私有属性。也都有公有属性。
2018-01-07 20:13:04 +08:00
> - html中表示长度的单位都是**像素**。HTML只有一种单位就是像素。
2017-06-29 14:25:26 +08:00
2019-10-03 16:25:14 +08:00
HTML标签通常是成对出现的<font color="blue">**双边标记**</font>),比如 `<div>``</div>`,也有单独呈现的标签(<font color="blue">**单边标记**</font>),如:`<br />`、`<hr />`和`<img src="images/1.jpg" />`等。
2017-06-29 14:25:26 +08:00
属性与标记之间、各属性之间需要以空格隔开。属性值以双引号括起来。
2019-10-03 16:25:14 +08:00
### 快速生成 html 的骨架
2017-06-29 14:25:26 +08:00
2019-10-03 16:25:14 +08:00
**方式1**:在 VS Code 中新建 html 文件,输入`html:5`,按 `Tab`键后,自动生成的代码如下:
2017-06-29 17:32:13 +08:00
```html
2019-10-03 16:25:14 +08:00
<!DOCTYPE html>
<html lang="en">
2017-06-29 17:32:13 +08:00
<head>
2019-10-03 16:25:14 +08:00
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
2017-06-29 17:32:13 +08:00
</head>
<body>
2019-10-03 16:25:14 +08:00
2017-06-29 17:32:13 +08:00
</body>
</html>
2019-10-03 16:25:14 +08:00
2017-06-29 17:32:13 +08:00
```
2019-10-03 16:25:14 +08:00
**方式2**在Sublime Text中安装`Emmet`插件。新建html文件输入`html:5`,按`Tab`键后,自动生成的代码如下:
2017-06-29 17:32:13 +08:00
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
2017-06-29 17:32:13 +08:00
</body>
</html>
```
2019-10-03 16:25:14 +08:00
**方式3**在Sublime Text中安装`Emmet`插件。新建html文件输入`html:xt`,按`Tab`键后或者按Ctrl+E自动生成的代码如下
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
</head>
<body>
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
</body>
</html>
```
上面的方式2和方式3中我们会发现第一行的内容有些不太一样这就是我们接下来要讲的**文档声明头**。
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
### 1、文档声明头
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
任何一个标准的HTML页面第一行一定是一个以`<!DOCTYPE ……>`开头的语句。
2017-06-29 17:32:13 +08:00
这一行就是文档声明头DocType Declaration简称DTD。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
#### HTML4.01有哪些规范呢?
2019-10-03 16:25:14 +08:00
**HTML4.01**这个版本是IE6开始兼容的。**HTML5是IE9开开始兼容的**。如今手机、移动端的网页就可以使用HTML5了因为其兼容性更高。
2017-06-29 17:32:13 +08:00
说个题外话html1 至 html3 是美国军方以及高等研究所用的,并未对外公开。
2019-10-03 16:25:14 +08:00
HTML4.01里面有两大种规范每大种规范里面又各有3种小规范。所以一共6种规范见下图
2017-07-04 16:08:41 +08:00
2019-10-03 16:25:14 +08:00
HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己有一些规定不严谨比如标签是否可以用大写字母呢`<H1></H1>`所以HTML就觉得把一些规范严格的标准又制定了一个XHTML1.0。在XHTML中的字母X表示“严格的”。
2017-07-04 16:08:41 +08:00
2019-10-03 16:25:14 +08:00
总结一下HTML4.01一共有6种DTD。说白了HTML的第一行语句一共有6种情况
2017-07-04 16:08:41 +08:00
![](http://img.smyhvae.com/20170629_1600.png)
2017-06-29 17:32:13 +08:00
下面对上图中的三种小规范进行解释:
- **strict**:表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。
比如u标签就是给一个本文加下划线但是这和HTML的本质有冲突因为HTML只能负责语义不能负责样式而u这个下划线是样式。所以在strict中是不能使用u标签的。
那怎么给文本增加下划线呢今后的css将使用css属性来解决。
那么XHTML1.0更为严格,因为这个体系本身规定比如标签必须是小写字母、必须严格闭合标签、必须使用引号引起属性等等。
- **Transitional**:表示“普通的”,这种模式就是没有一些别的规范。
- **Frameset**:表示“框架”,在框架的页面使用。
在sublime输入的html:xtx表示XHTMLt表示transitional。
2019-10-03 16:25:14 +08:00
在HTML5中极大的简化了DTD也就是说HTML5中就没有XHTML了W3C自己打脸了
2017-06-29 17:32:13 +08:00
```
<!DOCTYPE html>
```
2019-10-03 16:25:14 +08:00
### 2、头标签
#### html5 的比较完整的骨架:
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta name="Author" content="">
<meta name="Keywords" content="牛逼,很牛逼,特别牛逼" />
<meta name="Description" content="网易是中国领先的互联网技术公司为用户提供免费邮箱、游戏、搜索引擎服务开设新闻、娱乐、体育等30多个内容频道及博客、视频、论坛等互动交流网聚人的力量。" />
<title>Document</title>
</head>
<body>
</body>
</html>
```
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
面试题:
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
-网页的head标签里面表示的是页面的配置有什么配置
-字符集、关键词、页面描述、页面标题、IE适配、视口、iPhone小图标等等。
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
头标签都放在<head></head>头部分之间。包括:`<title>`、`<base>`、`<meta>`、`<link>`
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
- `<title>`:指定整个网页的标题,在浏览器最上方显示。
- `<base>`:为页面上的所有链接规标题栏显示的内容定默认地址或默认目标。
2018-01-07 22:09:48 +08:00
- `<meta>`:提供有关页面的基本信息
- `<body>`用于定义HTML文档所要显示的内容也称为主体标签。我们所写的代码必须放在此标签內。
- `<link>`:定义文档与外部资源的关系。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
**meta 标签**
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
上面的`<meta>`标签都不用记,但是另外还有一个`<meta>`标签是需要记住的:
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
```html
<meta http-equiv="refresh" content="3;http://www.baidu.com">
```
上面这个标签的意思是说3秒之后自动跳转到百度页面。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
常见的几种 meta 标签如下:
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
1字符集 charset
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
```html
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
```
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
字符集用meta标签中的`charset`定义meta表示“元”。“元”配置就是表示基本的配置项目。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
charset就是charactor set即“字符集”
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
浏览器就是通过meta来看网页是什么字符集的。比如你保存的时候meta写的和声明的不匹配那么浏览器就是乱码。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
2视口 viewport
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
```html
2019-10-03 16:25:14 +08:00
<meta name="viewport" content="width=device-width, initial-scale=1.0">
2018-01-07 22:09:48 +08:00
```
2019-10-03 16:25:14 +08:00
`width=device-width` :表示视口宽度等于屏幕宽度。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
viewport 这个知识点,初学者还比较难理解,以后学 Web 移动端的时候会用到。
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
2定义“关键词”
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
举例如下:
2017-06-30 09:01:48 +08:00
```html
2019-10-03 16:25:14 +08:00
<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />
2017-06-30 09:01:48 +08:00
```
2019-10-03 16:25:14 +08:00
这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。
2017-06-30 09:01:48 +08:00
2019-10-03 16:25:14 +08:00
3定义“页面描述”
2017-06-30 09:01:48 +08:00
2019-10-03 16:25:14 +08:00
meta除了可以设置字符集还可以设置关键字和页面描述。
2018-01-07 22:09:48 +08:00
2019-10-03 16:25:14 +08:00
只要设置Description页面描述那么百度搜索结果就能够显示这些语句这个技术叫做**SEO**search engine optimization搜索引擎优化
2017-06-30 09:01:48 +08:00
2018-01-07 22:09:48 +08:00
设置页面描述的举例:
2017-06-30 09:01:48 +08:00
```html
<meta name="Description" content="网易是中国领先的互联网技术公司为用户提供免费邮箱、游戏、搜索引擎服务开设新闻、娱乐、体育等30多个内容频道及博客、视频、论坛等互动交流网聚人的力量。" />
```
2018-01-07 22:09:48 +08:00
效果如下:
2017-06-30 09:01:48 +08:00
2017-07-04 16:08:41 +08:00
![](http://img.smyhvae.com/20170629_1743.png)
2017-06-29 17:32:13 +08:00
2019-10-03 16:25:14 +08:00
**title 标签**:
用于设置网页标题:
2017-06-30 09:01:48 +08:00
```html
2019-10-03 16:25:14 +08:00
<title>网页的标题</title>
2017-06-30 09:01:48 +08:00
```
title也是有助于SEO搜索引擎优化的。
2019-10-03 16:25:14 +08:00
**base标签**
2017-06-30 09:01:48 +08:00
```html
2019-10-03 16:25:14 +08:00
<base href="/">
2017-06-30 09:01:48 +08:00
```
2019-10-03 16:25:14 +08:00
base 标签用于指定基础的路径。指定之后,所有的 a 链接都是以这个路径为基准。
2017-06-29 17:32:13 +08:00
2018-01-07 22:09:48 +08:00
### 3、`<body>`标签的属性
2017-06-29 17:32:13 +08:00
2017-06-29 14:25:26 +08:00
其属性有:
- `bgcolor`:设置整个网页的背景颜色。
- `background`:设置整个网页的背景图片。
- `text`:设置网页中的文本颜色。
- `leftmargin`网页的左边距。IE浏览器默认是8个像素。
- `topmargin`:网页的上边距。
- `rightmargin`:网页的右边距。
- `bottommargin`:网页的下边距。
`<body>`标签另外还有一些属性,这里用个例子来解释:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_39.png)
2017-06-29 14:25:26 +08:00
上方代码中,当我们对`点我点我`这几个字使用超链时,`link`属性表示默认显示的颜色、`alink`属性表示鼠标点击但是还没有松开时的颜色、`vlink`属性表示点击完成之后显示的颜色。效果如下:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_05.gif)
2017-06-29 14:25:26 +08:00
2018-01-07 22:49:45 +08:00
接下来,我们讲一下`<body>`里的各种标签的属性。
2017-06-29 14:25:26 +08:00
2018-01-07 22:49:45 +08:00
## 一、排版标签
2017-06-29 14:25:26 +08:00
2017-06-29 17:32:13 +08:00
### 注释标签
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
```html
<!-- 注释 -->
```
2017-06-29 17:32:13 +08:00
### 段落标签`<p>`
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
```html
<p>This is a paragraph</p>
<p>This is another paragraph</p>
```
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
属性:
- `align="属性值"`对齐方式。属性值包括left center right。
举例:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html166440-1dcd2ad6e6353559.png)
2017-06-29 14:25:26 +08:00
<br>
2017-06-29 14:38:21 +08:00
2017-06-30 17:37:31 +08:00
段落是英语paragraph“段落”缩写。
HTML标签是分等级的HTML将所有的标签分为两种
- **文本级标签**p、span、a、b、i、u、em。文本级标签里只能放**文字、图片、表单元素**。a标签里不能放a和input
2018-01-07 22:49:45 +08:00
- **容器级标签**div、h系列、li、dt、dd。容器级标签里可以放置任何东西。
2017-06-30 17:37:31 +08:00
从学习p的第一天开始就要死死记住**p标签是一个文本级标签p里面只能放文字、图片、表单元素**。其他的一律不能放。
错误写法:(尝试把 h 放到 p 里)
```html
<p>
我是一个小段落
<h1>我是一级标题</h1>
</p>
```
网页效果如下:
2018-01-08 12:46:18 +08:00
![](http://img.smyhvae.com/20170630_1102.png)
2017-06-30 17:37:31 +08:00
上图显示浏览器不允许你这么做我们使用Chrome的F12审查元素发现浏览器自己把p封闭掉了不让你去包裹h1。
PSChrome浏览器是世界上HTML5支持最好的浏览器。提供了非常好的开发工具非常适合我们开发人员使用。审查元素功能的快捷键是F12。
2017-07-08 17:26:08 +08:00
### 块级标签 `<div>`和`<span>`
2017-06-30 17:37:31 +08:00
2017-07-08 17:26:08 +08:00
> div和span是非常重要的标签div的语义是division“分割” span的语义就是span“范围、跨度”。
2017-06-30 17:37:31 +08:00
2017-07-08 17:26:08 +08:00
>CSS课程中你将知道这两个东西都是最最重要的“盒子”。
2018-01-07 22:49:45 +08:00
div把标签中的内容作为一个块儿来对待(division)。必须单独占据一行。
2017-07-08 17:26:08 +08:00
div标签的属性
2018-01-07 22:49:45 +08:00
- `align="属性值"`设置块儿的位置。属性值可选择left、right、 center。
2017-07-08 17:26:08 +08:00
<br>
2018-01-07 22:49:45 +08:00
**`<span>`和`<div>`唯一的区别在于**`<span>`是不换行的,而`<div>`是换行的。
如果单独在网页中插入这两个元素不会对页面产生任何的影响。这两个元素是专门为定义CSS样式而生的。或者说DIV+CSS来实现各种样式。
2017-07-08 17:26:08 +08:00
效果举例:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_08.png)
2017-07-08 17:26:08 +08:00
2018-01-07 22:49:45 +08:00
div在浏览器中默认是不会增加任何的效果的但是语义变了div中的所有元素是一个小区域。
2017-07-08 17:26:08 +08:00
div标签是一个**容器级**标签里面什么都能放甚至可以放div自己。
span也是表达“小区域、小跨度”的标签但是是一个**文本级**的标签。
就是说span里面只能放置文字、图片、表单元素。 span里面不能放p、h、ul、dl、ol、div。
span里面是放置小元素的div里面放置大东西的。举例如下
span举例
```html
<p>
简介简介简介简介简介简介简介简介
<span>
<a href="">详细信息</a>
<a href="">购买</a>
</span>
</p>
```
div举例
```html
<div class="header">
<div class="logo"></div>
<div class="nav"></div>
</div>
<div class="content">
<div class="guanggao"></div>
<div class="dongxi"></div>
</div>
<div class="footer"></div>
```
所以,我们亲切的称呼这种模式叫做“**div+css**”。**div标签负责布局负责结构负责分块。css负责样式**。
### 换行标签`<br>`(已废弃)
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
当你打算结束一行,而又不想开始一个新段落时,`<br> `标签就派上用场了。无论你将它置于何处,`<br> `标签都会产生一个强制的换行。
```html
This <br> is a para<br>graph with line breaks
```
效果如下:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-01-cnblogs_html03.png)
2017-06-29 14:25:26 +08:00
2018-01-07 22:49:45 +08:00
上图显示,**`<p>`标签和`<br>`标签的区别在于**`<p>`标签会在段落的前后自动插入一个空行,而`<br>`标签没有空行;而且`<br>`标签没有属性。
2017-06-29 14:25:26 +08:00
注意`<br>` 没有结束标签,把`<br>`标签写为 `<br/>` 是经得起未来考验的做法XHTML 和 XML 都接受在打开的标签内部来关闭标签的做法。
<br>
2017-06-29 14:38:21 +08:00
2017-07-08 17:26:08 +08:00
### 水平线标签`<hr>`(已废弃)
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
水平分隔线horizontal rule可以在视觉上将文档分隔成各个部分。
效果如下:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_04.png)
2017-06-29 14:25:26 +08:00
属性:
- `align="属性值"`设定线条置放位置。属性值可选择left right center。
- `size="2" `设定线条粗细。以像素为单位内定为2。
- `width="500"`或`width="70%"`设定线条长度。可以是绝对值单位是像素或相对值。如果设置为相对值的话内定为100%。
- `color="#0000FF"`:设置线条颜色。
- `noshade`:不要阴影,即设定线条为平面显示。若没有这个属性则表明线条具阴影或立体,这是内定值。
属性效果演示:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_05.png)
2017-06-29 14:25:26 +08:00
<br>
2017-06-29 14:38:21 +08:00
2017-06-29 17:32:13 +08:00
### 内容居中标签 `<center>`
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
此时center代表是一个标签而不是一个属性值了。只要是在这个标签里面的内容都会居于浏览器的中间。
效果演示:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_06.png)
2017-06-29 14:25:26 +08:00
到了H5里面center标签不建议使用。
<br>
2017-06-29 14:38:21 +08:00
2017-06-29 17:32:13 +08:00
### 预定义(预格式化)标签:`<pre>`
2017-06-29 14:38:21 +08:00
2017-06-29 14:25:26 +08:00
含义:将保留其中的所有的空白字符(空格、换行符),原封不动的输出结果(告诉浏览器不要忽略空格和空行)
说明:真正排网页过程中,`<pre>`标签几乎用不着。但在PHP中用于打印一个数组时使用。
效果演示:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_07.png)
2017-06-29 14:25:26 +08:00
上图中,好像红框部分的字体变小了,而且还出现了缩进,好吧, 这个其实是浏览器搞的鬼。
为什么要有`<pre>`这个标签呢?答案是:
> 所有的浏览器默认情况下都会忽略空格和空行。
好吧,其实这个标签也用的比较少。
2018-01-07 22:49:45 +08:00
## 二、字体标签
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
### 标题
2017-06-29 17:32:13 +08:00
2017-06-29 14:25:26 +08:00
标题使用`<h1>`至`<h6>`标签进行定义。`<h1>`定义最大的标题,`<h6>`定义最小的标题。具有align属性属性值可以是left、center、right。
效果演示:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_09.png)
2017-06-29 14:25:26 +08:00
2017-07-08 17:26:08 +08:00
### 字体标签`<font>`(已废弃)
2017-06-29 14:25:26 +08:00
属性:
- `color="红色"`或`color="#ff00cc"`或`color="new rgb(0,0,255)"`:设置字体颜色。
设置方式:单词 \ #ff00cc \ rgb(0,0,255)
- `size`:设置字体大小。 取值范围只能是1至7。取值时如果取值大于7那就按照7来算如果取值小于1那就按照1来算。如果想要更大的字体那就只能通过css样式来解决。
2017-06-29 14:25:26 +08:00
设置:用’+2代表值是5 或直接给值
- `face="微软雅黑"`:设置字体类型。注意在写字体时,“微软雅黑”这个字不能写错。
举例:
```html
<font face="微软雅黑" color="#FF0000" size="10">vae</font>
```
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_10.png)
2017-06-29 14:25:26 +08:00
### 特殊字符(转义字符)
2017-06-29 14:48:12 +08:00
2017-07-08 17:26:08 +08:00
- `&nbsp;`:空格 non-breaking spacing不断打空格
- `&lt;`小于号less than
- `&gt;`大于号greater than
- `&amp;`:符号`&`
- `&quot;`:双引号
- `&apos;`:单引号
- `&copy;`:版权`©`
- `&trade;`:商标`™`
- `&#32464;`:文字`绐`。其实,`#32464`是汉字`绐`的unicode编码。
要求背诵的特殊字符有:`&nbsp;`、`&lt;`、`&gt;`、`&copy;`。
2017-06-29 14:25:26 +08:00
2018-01-08 15:26:37 +08:00
比如说,你想把`<p>`作为一个文本在页面上显示,直接写`<p>`是肯定不行的,因为这代表的是一个段落标签,所以这里需要用到**转义字符**。应该这么写:
2017-06-29 14:25:26 +08:00
```html
这是一个HTML语言的&lt;p&gt;标签
```
正确的效果如下:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_11.png)
2017-06-29 14:25:26 +08:00
错误的效果如下:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_12.png)
2017-06-29 14:25:26 +08:00
其实我们只要记住前三个符号就行了其他的在需要的时候查一下就行了。而且EditPlus软件中是可以直接点击这些符号进行选择的
![Paste_Image.png](
2018-10-02 22:10:26 +08:00
http://img.smyhvae.com/2015-10-01-cnblogs_html_13.png)
2017-06-29 14:25:26 +08:00
来一张表格,方便需要的时候查询:
| 特殊字符 | 描述 |字符的代码 |
|:-------------|:-------------|:-----|
||空格符|`&nbsp;`|
|<|小于号|`&lt;`|
|> |大于号|`&gt;`|
|&|和号|`&amp;`|
|¥|人民币|`&yen;`|
|©|版权|`&copy;`|
|®|注册商标|`&reg;`|
|°|摄氏度|`&deg;`|
|±|正负号|`&plusmn;`|
|×|乘号|`&times;`|
|÷|除号|`&divide;`|
|²|平方2上标2|`&sup2;`|
|³|立方3上标3|`&sup3;`|
### 一些小标签/小标记
2017-06-29 14:48:12 +08:00
- `<u>`:下划线标记
- `<s>`或`<del>`:中划线标记(删除线)
- `<i>`或`<em>`:斜体标记
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_15.png)
2017-06-29 14:25:26 +08:00
上面的这几个标签,常用于做一些小装饰、小图标。比如:
20180118_2340.png
这张图中,我们通过查看京东网站的代码发现,箭头处的小图标都是用的标签`<i>`。
div的主要目的是用来布局而小装饰却可以用来
### 粗体标签`<b>`或`<strong>`(已废弃)
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_14.png)
2017-06-29 14:25:26 +08:00
<br>
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
### 上标`<sup>` 下标`<sub>`
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
上小标这两个标签容易混淆,怎么记呢?这样记:`b`的意思是`bottom底部`
举例:
```html
O<sup>2</sup> 5<sub>3</sub>
```
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_16.png)
2017-06-29 14:25:26 +08:00
2018-01-07 22:49:45 +08:00
## 三、超链接
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
超链接有三种形式:
2017-06-29 17:32:13 +08:00
2017-06-29 14:25:26 +08:00
**1、外部链接**:链接到外部文件。举例:
```html
<a href="02页面.html">点击进入另外一个文件</a>
```
2017-06-30 17:37:31 +08:00
a是英语`anchor`“锚”的意思,就好像这个页面往另一个页面扔出了一个锚。是一个文本级的标签。
href是英语`hypertext reference`超文本地址的缩写。读作“喝瑞夫”,不要读作“喝夫”。
2017-06-29 14:25:26 +08:00
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_17.png)
2017-06-29 14:25:26 +08:00
2018-01-08 15:26:37 +08:00
当然,我们也可以直接点进链接,访问一个网址。举例如下;
2017-12-20 22:54:44 +08:00
```
<a href="http://www.baidu.com" target="_blank">点我点我</a>
```
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
**2、锚链接**
指给超链接起一个名字,作用是**在本页面或者其他页面的的不同位置进行跳转**。比如说,在网页底部有一个向上箭头,点击箭头后回到顶部,这个就是利用到了锚链接。
2017-07-04 16:08:41 +08:00
首先我们要创建一个**锚点**,也就是说,使用`name`属性或者`id`属性给那个特定的位置起个名字。效果如下:
2017-06-29 14:25:26 +08:00
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_18.png)
2017-06-29 14:25:26 +08:00
上图中解释:
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
11行代码表示顶部这个锚的名字叫做name1。
2017-06-30 17:37:31 +08:00
然后在底部设置超链接点击时将回到顶部此时网页中的url的末尾也出现了`#name1`)。注意**上图中红框部分的`#`号不要忘记了**表示跳到名为name1的特定位置这是规定。如果少了`#`号点击之后就会跳到name1这个文件或者name1这个文件夹中去。
2017-06-29 14:25:26 +08:00
如果我们将上图中的第28行代码写成
```html
2018-12-09 17:23:30 +08:00
<a href="a.html#name1">回到顶部</a>
2017-06-29 14:25:26 +08:00
```
那就表示,点击之后,跳转到`a.html`页面的`name1锚点`中去。
说明name属性是HTML4.0以前使用的id属性是HTML4.0后才开始使用。为了向前兼容因此name和id这两个属性都要写上并且值是一样的。
**3、邮件链接**
代码举例:
```html
<a href="mailto:smyhvae@163.com">点击进入我的邮箱</a>
```
效果点击之后会弹出outlook作用不大。
2018-01-08 15:26:37 +08:00
### 超链接的属性
2017-06-30 17:37:31 +08:00
- `href`目标URL
- `title`:悬停文本。
2017-07-04 16:08:41 +08:00
- `name`:主要用于设置一个锚点的名称。
- `target`:告诉浏览器用什么方式来打开目标页面。`target`属性有以下几个值:
- `_self`:在同一个网页中显示(默认值)
- `_blank`**在新的窗口中打开**。
- `_parent`:在父窗口中显示
- `_top`:在顶级窗口中显示
2017-06-30 17:37:31 +08:00
`title`属性举例:
2017-06-29 14:25:26 +08:00
```html
2017-06-30 17:37:31 +08:00
<a href="09_img.html" title="很好看哦">结婚照</a>
2017-06-29 14:25:26 +08:00
```
2017-06-30 17:37:31 +08:00
效果如下:
2017-07-04 16:08:41 +08:00
![](http://img.smyhvae.com/20170630_1415.png)
2017-06-30 17:37:31 +08:00
`target`属性举例:
```html
<a href="1.html" title="悬停文本" target="_blank">链接的内容</a>
```
blank就是“空白”的意思就表示新建一个空白窗口。为啥有一个_ ,就是规定,没啥好解释的。
也就是说,如果不写`target=”_blank”`那么就是在相同的标签页打开,如果写了`target=”_blank”`,就是在新的空白标签页中打开。
#### 备注1分清楚img和a标签的各自的属性
区别如下:
```html
<img src="1.jpg" />
<a href="1.html"></a>
```
#### 备注2a是一个文本级的标签
比如一个段落中的所有文字都能够被点击那么应该是p包裹a
```html
<p>
<a href="">段落段落段落段落段落段落</a>
</p>
```
而不是a包裹p
```html
<a href="">
<p>
段落段落段落段落段落段落
</p>
</a>
```
a的语义要小于pa就是可以当做文本来处理所以p里面相当于放的就是纯文字。
2018-01-07 22:49:45 +08:00
## 四、图片标签
2017-06-29 17:32:13 +08:00
2017-06-29 14:25:26 +08:00
img: 代表的就是一张图片。是单边标记。
2017-06-30 17:37:31 +08:00
2018-01-08 15:26:37 +08:00
img是自封闭标签也称为单标签。
2017-06-30 17:37:31 +08:00
2018-01-08 15:26:37 +08:00
#### 能插入的图片类型:
2017-06-30 17:37:31 +08:00
- 能够插入的图片类型是jpg(jpeg)、gif、png、bmp。类型和类型之间有什么区别css课上讲。
- 不能往网页中插入的图片格式是psd、ai
> HTML页面不是直接插入图片而是插入图片的引用地址所以也要把图片上传到服务器上。
2018-01-08 15:26:37 +08:00
### `src`属性:图片的相对路径和绝对路径
2017-06-30 17:37:31 +08:00
2018-01-08 15:26:37 +08:00
这里涉及到图片的一个属性:
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
- `src`属性:指图片的路径。
2017-07-13 17:28:20 +08:00
2018-01-08 15:26:37 +08:00
在写**图片的路径**时,有两种写法:相对路径、绝对路径
#### 1、**写法一:相对路径**
相对当前页面所在的路径。两个标记 `.``..` 分表代表当前目录和父路径。
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
举例1
2018-01-08 15:26:37 +08:00
2017-06-29 14:25:26 +08:00
```html
<!-- 当前目录中的图片 -->
<img src="2.jpg">
<img src=".\2.jpg">
2017-06-29 14:25:26 +08:00
<!-- 上一级目录中的图片 -->
<img src="..\2.jpg">
```
2017-06-30 17:37:31 +08:00
img 是image“图片”的简写src 是英语source“资源”的缩写。
相对路径不会出现这种情况:
```html
aaa/../bbb/1.jpg
```
`../`要么不写,要么就写在开头。
2017-06-29 14:25:26 +08:00
举例2
2018-01-08 15:26:37 +08:00
2017-06-29 14:25:26 +08:00
```html
<img src="images/1.jpg">
```
上方代码的意思是说,当前页面有一个并列的文件夹`images`,在文件夹`images`中存放了一张图片`1.jpg`
效果:
2017-12-20 23:06:54 +08:00
![Paste_Image.png](http://img.smyhvae.com/20151001_19.jpg)
2017-06-29 14:25:26 +08:00
2017-06-30 17:37:31 +08:00
相对路径的面试题。现有如下文件层级图:
2018-01-08 15:28:38 +08:00
![](http://img.smyhvae.com/20170630_1133.png)
2017-06-30 17:37:31 +08:00
问题如果想在index.html中插入1.png那么对应的img语句是
分析:
现在document是最大的文件夹里面有两个文件夹work和photo。work中又有一个文件夹叫做myweb。myweb文件夹里面有index.html。 所以index.html在myweb文件夹里面上一级就是work文件夹上两级就是document文件夹。通过document文件夹当做一个中转站进入photo文件夹看到了1.png。
答案:
```html
<img src="../../photo/1.png" />
```
2018-01-08 15:26:37 +08:00
#### 2、写法二**绝对路径**
绝对路径包括以下两种:
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
1以盘符开始的绝对路径。举例
2018-01-08 15:26:37 +08:00
2017-06-29 14:25:26 +08:00
```html
<img src="C:\Users\smyhvae\Desktop\html\images\1.jpg">
```
2018-01-08 15:26:37 +08:00
2017-06-29 14:25:26 +08:00
2网络路径。举例
2018-01-08 15:26:37 +08:00
2017-06-29 14:25:26 +08:00
```html
2018-01-08 15:26:37 +08:00
<img src="http://img.smyhvae.com/2016040102.jpg">
2017-06-29 14:25:26 +08:00
```
2017-07-13 17:28:20 +08:00
2018-01-08 15:26:37 +08:00
大家打开上面的img中的链接扫一扫可能有惊喜哦。
2017-07-13 17:28:20 +08:00
2018-01-08 15:26:37 +08:00
### 相对路径和绝对路径的总结
2017-07-13 17:28:20 +08:00
相对路径的好处:站点不管拷贝到哪里,文件和图片的相对路径关系都是不变的。
相对路径使用有一个前提,就是网页文件和你的图片,必须在一个服务器上。
问题我的网页在C盘图片却在D盘能不能插入呢
答案: 用相对路径不能,用绝对路径也不能。
注意可以使用file://来插入但是这种方法没有任何意义因为服务器上没有所谓c盘、d盘。
下面的方法是行的但是没有任何工程上的意义这是因为服务器没有盘符linux系统没有盘符
```html
<img src="file://C:\Users\Danny\Pictures\明\1.jpg" alt="" />
```
总结一下:
- 我们现在无论是在a标签、img标签如果要用路径。只有两种路径能用就是相对路径和绝对路径。
- 相对路径,就是../ image/ 这种路径。从自己出发,找到别人;
- 绝对路径就是http://开头的路径。
- 绝对不允许使用file://开头的东西,这个是完全错误的!
2018-01-08 15:26:37 +08:00
### img标签的其他属性
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
- `width`:宽度
- `height`:高度
- `Align`指图片的水平对齐方式属性值可以是left、center、right
- `title`**提示性文本**。公有属性。也就是鼠标悬停时出现的文本。
- `border`:给图片加边框(描边),单位是像素,边框的颜色是黑色
- `Hspace`:指图片左右的边距
- `Vspace`:指图片上下的边距
2019-10-03 17:18:39 +08:00
- `alt`当图片不可用无法显示的时候代替图片显示的内容。alt是英语 alternate “替代”的意思,代表替换资源。(有的浏览器不支持)
2017-06-30 17:37:31 +08:00
2017-06-29 14:25:26 +08:00
举例:
```html
<img src="images/1.jpg" width="300" height="`188" title="这是美女">
```
效果:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_20.png)
2017-06-29 14:25:26 +08:00
2019-10-03 17:18:39 +08:00
`Alt`属性效果演示:(当图片 src 不可用的时候,显示文字。这样做,至少能让用户知道,这个图片大概是什么内容)
2017-06-29 14:25:26 +08:00
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_21.png)
2017-06-29 14:25:26 +08:00
- 图片的`align`属性:**图片和周围文字的相对位置**。属性取值可以是bottom默认、center、top、left、right。
我们来分别看一下这`align`属性的这几个属性值的区别。
2019-10-03 17:18:39 +08:00
2017-06-29 14:25:26 +08:00
1、`align=""`,图片和文字低端对齐。即默认情况下的显示效果:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_19.png)
2017-06-29 14:25:26 +08:00
2、`align="center"`:图片和文字水平方向上居中对齐。显示效果:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_21.png)
2017-06-29 14:25:26 +08:00
3、`align="top"`:图片与文字顶端对齐。显示效果:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_22.png)
2017-06-29 14:25:26 +08:00
4、`align="left"`:图片在文字的左边。显示效果:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_23.png)
2017-06-29 14:25:26 +08:00
5、`align="right"`:图片在文字的右边。显示效果:
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_24.png)
2017-06-29 14:25:26 +08:00
**注意事项:**
1如果要想保证图片等比例缩放请只设置width和height中其中一个。
2如果想实现图文混排的效果请使用align属性取值为left或right。
2018-01-08 15:26:37 +08:00
### 热点问题
2017-06-29 14:48:12 +08:00
2017-06-29 14:25:26 +08:00
指的是对图片的**局部区域**加超链接。
我们知道,如果给图片加一个超链接,那个点击这个图片的任意区域,都会跳转到新的位置。举例:
```html
<a href="网页2.html"><img src="2.jpg"></a>
```
上方代码表明:给图片加一个超链接,那个点击这个图片的任意区域,都会跳转到新的位置。
现在我只想对图片的局部区域加超链接该怎么做呢这里的难点在于坐标的确定此时需要用到Dreamweaver。
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_22.png)
2017-06-29 14:25:26 +08:00
上图中,切换到“设计”标签,然后:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_23.png)
2017-06-29 14:25:26 +08:00
上图中,点击菜单栏`插入-图像`,导入图片:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_24.png)
2017-12-20 22:54:44 +08:00
2017-06-29 14:25:26 +08:00
,在图片上点击右键,选择`属性`,弹出属性面板:
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_25.png)
2017-06-29 14:25:26 +08:00
上图中,我们可以利用红框部分的`地图`绘制需要添加超链接的区域。箭头处表示的是要链接到的文件。蓝框部分表示打开新页面的方式,蓝狂部分的`new`是没有下划线的,它和`_blank`的含义是一样的。
2018-10-02 22:10:26 +08:00
![Paste_Image.png](http://img.smyhvae.com/2015-10-01-cnblogs_html_26.png)
2017-06-29 14:25:26 +08:00
局部区域的热点设置完毕后,上图显示,红框部分就是多出的代码,也正是我们需要的代码。多出的代码如下:
```html
<img src="file:///C|/Users/smyhvae/Desktop/html/1.jpg" alt="" width="488" height="730" usemap="#Map"/>
<map name="Map">
<area shape="circle" coords="227,374,63" href="file:///C|/Users/smyhvae/Desktop/html/网页2.html" target="_blank">
</map>
```
上方代码中,第一行的`usemap="#Map"`表示我要引用名为`Map`的地图。
然后第02至第04行就给出了地图的定义。
效果演示:
2018-10-02 22:10:26 +08:00
![3.gif](http://img.smyhvae.com/3.gif)
2017-06-29 14:25:26 +08:00
2019-10-03 16:25:14 +08:00
最后送上妹子的近照一张。楼主已经仁至义尽了http://img.smyhvae.com/2015-10-01-cnblogs_html_20150219214912_11994.jpg
2017-06-29 14:25:26 +08:00
怎么?还没看够?且看下文:[HTML标签----图文详解(二)](http://www.cnblogs.com/smyhvae/p/4852863.html)
2017-06-29 14:48:12 +08:00
## 我的公众号
2017-06-29 14:25:26 +08:00
2019-02-03 14:06:03 +08:00
想学习<font color=#0000ff>**代码之外的技能**</font>不妨关注我的微信公众号千古壹号id`qianguyihao`)。
2017-06-29 14:25:26 +08:00
2018-01-05 00:02:22 +08:00
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
2017-06-29 14:25:26 +08:00
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/cnblogs/%E7%94%9F%E5%91%BD%E5%9B%A2%E9%98%9F%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BA%8C%E7%BB%B4%E7%A0%81.jpg)
2017-06-29 14:25:26 +08:00