# HTML 入门
# 复习
1. 上网原理: 本质是数据传输! 每个网址对应一个具体文件,根据网址URL,响应资源(html.css,js,图片)等到用户本地,浏览器解析
2. 存文本: 只有内容无样式!! 无语义!
3. HTML: 超文本标记语言!
4. 标签
```
<h1><h1> 标题语意, h是 headline标题的缩写
<p></p> p 是paragraph 段落的意思
HTML中除了语义,其他什么都没有:没有样式、没有交互、没有行为。
所以HTML不能让文本居中、字号调整、颜色改变、字体……
````
# 目标
*编号为本节重难点*
![](https://box.kancloud.cn/b1fe60dc4e645ffd9b4d167c059bb3ec_436x305.png)
- 常见标签(h,p,img,a,hr,div,span,文本小标签,注释和特殊字符,ol,ul,dl)
# 基本环境
> 一些基本的电脑常识需要了解! 文件后缀名,浏览器等
这里还是要重复下上章节的内容!简单了解下电脑基础知识
- 不同文件有不同后缀: *.jpg 图片 *.mp3 网页 *.txt 文本
- 网页 *.html
- 默认文件后缀名不显示,需要手动设置显示
双击我的电脑-- 工具---文件夹选项--- 查看---去掉勾选"隐藏已知文件扩展名"
![](https://box.kancloud.cn/57efe3f19f79a6ab040b5b8e2b1417a3_831x344.png)
- 浏览器
浏览网页的软件叫"浏览器", 常用浏览器有很多,有自己独立核心技术"内核"的浏览器有如下几个,其余都是盗版!
![](https://box.kancloud.cn/20642d14c8f0c6d8d4c4f288506ff779_325x63.png)
| 浏览器 | 简介 |
| --- | --- |
| IE | 微软,用户量最大 |
| FireFox | 火狐, 最专业 |
| Google & Safari |谷歌和苹果, 最炫 都是 webkit内核 |
| Opera | 欧朋, 最小巧,欧美常用 |
# 第一个网页
> 网页本质上是文本文档! 以下步骤可以快速建立第一给自己的网页!
1. 新建一个txt文件:
2. 改后缀名为*.html
3. 输入内容,保存用浏览器打开
![](https://box.kancloud.cn/7fb852b28b389d3bbe13bcbd98929010_132x47.png)
![](https://box.kancloud.cn/598695dd6780fd360b30cfc50b020fd6_178x43.png)
![](https://box.kancloud.cn/fe0b47fed0a05059e97a999b5ccf0199_530x262.png)
也就是说,html本质上和txt没有任何区别,他们都是纯文本文件。
我们强行把这个文件的拓展名,从txt更改为html,我们会发现小图标就变成浏览器的小图标了:
在“打开方式”中,用记事本可以编辑它。
现在要养成 `编辑器里面编辑 → 保存ctrl+s → 浏览器里面刷新F5` 的习惯。
# 使用标签为网页添加效果
> 以上3步可快速建立一个最简单网页! 本质上是一个文本! 如何为网页添加特殊效果呢?
接了下我们为网页添加一对特殊格式的字符
```
我的第一个网页
<h1>静夜思</h1>
```
保存,浏览,可发现"静夜思" 标题别加粗放大! 这就是一个标题!
![](https://box.kancloud.cn/9e8835d789996dc1c1c1f3ee717dba04_149x275.png)
总结:
> h1就标识"静夜思"为标题!
在网页中这种成对存在的特殊符号叫"标签/标记"
基本语法: <起始标签>内容</结束标签>
标签一般成对存在,必须闭合! / 标示闭合符号
网页中正因为添加了各种标签才拥有了丰富的效果! 所以网页全称"超文本标签语言"
Hyper Text Markup Langulare
超级 文本 标记 语言
>
# 制作一个标准网页 [傻傻的才记忆]
> 以上我们制作的是一个最简单的网页,一个标准网页结构如下:
## 标准结构
![](https://box.kancloud.cn/7c429d0a129390ca3c4c94a3dad9b3d8_320x358.png)
```
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3<head>
4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
5 <title>Document</title>
6</head>
7<body>
8
9</body>
10</html>
```
我们详细讲解!
## 文档声明头
第一行 就是文档声明头,DocType Declaration。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。
![](https://box.kancloud.cn/2162399d77566d40f8b43802bb5dcac4_658x340.png)
到底有哪些规范呢?
首先我们先确定一件事儿,我们`现在学习的是HTML4.01`这个版本,这个版本是IE6开始兼容的。HTML5是IE9开开始兼容的。但是IE6、7、8这些浏览器还不能过早的淘汰,所以这几年网页还是应该用HTML4.01来制作。后面将知道手机、移动端的网页,就可以使用HTML5了。
HTML4.01里面有两大种规范,每大种规范里面又各有3种小规范。所以一共6种规范(见下面):
HTML4.01里面规定了普通、XHTML两大种规范。
HTML觉得自己有一些规定不严谨,比如,标签是否可以用大写字母呢?
```
<H1></H1>
```
所以,HTML就觉得,把一些规范严格的标准,又制定了一个XHTML1.0。在XHTML中的字母X,表示“严格的”。
总结一下,一共有6种DTD,说白了,HTML第一行语句一共有6种:
![](https://box.kancloud.cn/b3c0ca9558557d6e920ec26fe76d7287_596x256.png)
strict表示“严格的”,这种模式里面的要求更为严格。这种严格体现在哪里?有一些标签不能使用。
比如,u标签,就是可以让一个本文加上下划线,但是这和HTML的本质有冲突,因为HTML只能负责语义,不能负责样式,而u这个下划线是样式。所以,在strict中是不能使用u标签的。
1 <u>嘻嘻嘻嘻嘻</u>
怎么给文本增加下划线呢?今后的css将使用css属性来解决。
Transitional表示“普通的”,这种模式就是没有一些别的规范。
Frameset表示“框架”,在框架的页面使用
## 字符集
> 字库规模 : urf-8 > gbk(只有汉字)
```
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
```
字符集用meta标签定义,meta表示“元”。“元”配置,就是表示基本的配置项目。
charset就是charactor set“字符集”的意思。这个meta不用背,谁背谁傻,自动生成的。
中文能够使用的字符集两种:
```
第一种:UTF-8
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
第二种:gb2312
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
也可以写成gbk
<meta http-equiv="Content-Type" content="text/html;charset=gbk">
```
什么是字符集?活字印刷术,所有的汉字都有一个个小印章,需要哪个字,就取哪个字。
![](https://box.kancloud.cn/ef63f9c6fb3fd82a9bcd5106c62d1083_226x150.png)
但是,有两个人都发明了字库。老王发明了一个,老李也发明了一个。
比如同一个汉字,“传”字在老王的字库里面是第2个大盘子第4行第43列的。
而这个汉字“传”在老李的字库里面是第5个大盘子第6行第13列的。
计算机,不能直接存储汉字,而是存储的是编码,所以,计算机记录“传”这个字,就是这么记录的:
老王:20443
老李:50613
> 有两个字库UTF-8和gb2312。
UTF-8是国际通用字库,里面涵盖了所有地球上所有人类的语言文字,
比如阿拉伯文、汉语、鸟语……
gb2312 是国标,是中国的字库,里面仅涵盖了汉字和一些常用外文,
比如日文片假名,和常见的符号。
`字库规模: UTF-8(字全) > gb2312(只有汉字)`
我们用meta标签可以声明当前这个html文档的字库,但是一定要和保存的类型一样,否则乱码!(重点)
![](https://box.kancloud.cn/99afedb29a7c2d9120f9f36a1ed8ea8d_577x318.png)
当我们不设置的时候,sublime默认类型就是UTF-8。而一旦更改为gb2312的时候,就一定要记得设置一下sublime的保存类型: 文件→ set File Encoding to → Chinese Simplified(GBK)
![](https://box.kancloud.cn/29f8d9fc0af8ed835603ae3086ee2487_680x347.png)
注意,由于UTF-8里面保存了世界上所有人类语言,所以描述一个汉字需要的码更多。
UTF-8里面存储一个汉字3个字节。而gb2312中存储一个汉字2个字节。
`保存大小: UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)`
![](https://box.kancloud.cn/8af4fda02581491fb1db096263e0fd16_553x94.png)
列出2个使用情形:
1) 你们公司是做日本动漫的,经常出现一些日语动漫的名字,网页要使用UTF-8。如果用gb2312将无法显示日语。
2) 你们公司就是中文网页,极度的追求网页的显示速度,要使用gb2312。如果使用UTF-8将每个汉字多一个byte,所以5000个汉字,多5kb。
我们亲测:
● qq网、网易、搜狐都是使用gb2312。这些公司,都追求显示速度。
● 新华网藏语频道,使用的是UTF-8,保证字符集的数量。
我们的课程,一律使用UTF-8,因为我们懒,懒得改了。
浏览器就是通过meta来看你是什么字符集的,比如你保存的时候meta写的,和声明的不匹配,那么浏览器就是乱码。
## 关键字和页面描述
> meta除了可以设置字符集,还可以设置关键字和页面描述。,有利于SEO优化
```
<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />
<meta name="Description" content="网易是中国领先的互联网技术公司,为用户提供免费邮箱、游戏、搜索引擎服务,开设新闻、娱乐、体育等30多个内容频道,及博客、视频、论坛等互动交流,网聚人的力量。" />
```
只要设置的Description页面描述,那么百度搜索结果,就能够显示这些语句,这个技术叫做SEO,search engine optimization,搜索引擎优化。
![](https://box.kancloud.cn/8733f3ede552fd8321dd2ab17e60638d_458x157.png)
抽象一下:
```
<meta name=”” content=”” />
```
name就是“名字”的意思,content是“内容”的意思。
也就是说,我们定义了一个名字是“Description”(描述)的meta。内容是网易是中国领先……
定义关键词:
```
<meta name="Keywords" content="网易,邮箱,游戏,新闻,体育,娱乐,女性,亚运,论坛,短信" />
```
这些关键词,就是告诉搜索引擎,这个网页是干嘛的,能够提高搜索命中率。让别人能够找到你,搜索到你。
Keywords就是“关键词”的意思。
## title
> 网页标题
```
<title>爱奇艺-全球领先的在线视频网站-海量正版高清视频在线观看</title>
```
title也是有助于SEO搜索引擎优化的:
![](https://box.kancloud.cn/f21f819f7b4906d7523160433cab34ed_230x34.png)
## body
用户可见的内容都必须写在body中
总结:
网页的head标签里面,表示的是页面的配置,有什么配置?
字符集、关键词、页面描述、页面标题。
今后我还能看见一些配置:IE适配、视口、iPhone小图标等等……
## 补充:网站小图标
> head 中也可以加入网站小图标
```
<link rel="shortcut icon" href="图标.ico">
```
![](https://box.kancloud.cn/7b7d64cf19e35821bfcc88321c8272d4_235x36.png)
# 常用标签简介
> 常用标签: 标题,段落,水平线,换行,图片
## . 标题系列
` h1-h6` 是 headline标题的缩写
````
<h1>静夜思</h1>
<h2>静夜思</h2>
<h3>静夜思</h3>
<h4>静夜思</h4>
<h5>静夜思</h5>
<h6>静夜思</h6>
````
效果如图: h1-h6,标题标签,字体加粗放大,逐渐变小
![](https://box.kancloud.cn/d6481ae2fefcd93d9a1b0b3c29e33779_165x269.png)
## 段落 `p `
p是`paragraph` 段落的缩写段落会自动换行
```
HTML标签是分等级的,HTML将所有的标签分为两种:容器级、文本级。
顾名思义,容器级的标签,里面可以放置任何东西;文本级的标签里面,
只能放置文字、图片、表单元素。
````
p标签是一个文本级标签。从学习p的第一天开始,就要死死记住:p里面只能放文字、图片、表单元素。其他的一律不能放。
![](https://box.kancloud.cn/b8120db08c1d6f0bb8c2ca443aba939c_154x38.png)
Chrome浏览器 是世界上HTML5支持最好的浏览器。提供了非常好的开发工具,非常适合我们开发人员使用。审查元素功能的快捷键是F12。
Chrome的英语原意“硅”,是谷歌公司的产品
审查元素功能:
![](https://box.kancloud.cn/0998040a8ed0b43073a916bfce43c00c_680x371.png)
试着把h放到p到里:
```
<p>
我是一个小段落
<h1>我是一个主标题</h1>
</p>
```
浏览器不允许你这么做,我们使用Chrome的F12审查,你会发现,浏览器自己把p封闭掉了,不让你去包裹h1。
![](https://box.kancloud.cn/7c09232dec4efc9df40489b1ee6c39d3_286x91.png)
`所以,再次强调,p是一个文本级的标签,p里面只能放文字、图片、表单元素。`
```
正确的:
<h3>个人经历</h3>
<p>
我是一个主标题
</p>
````
## 水平线
```
<hr>
```
## 换行
````
<br/>
````
## 块
表示页面中一个区域,稍后可添加宽高!
```
<div>内容</div>
```
## 行标签
表示一行中的一个或一部分,用户为一行中特定部分添加效果!
```
<span>内容</span>
```
## 注释和特殊符号
注释:
```
<!--- 要注释的内容 -->
```
特殊符号/实体
| 符号 | 介绍 |
| --- | --- |
| &ngbsp; | 空格 |
| > | 大于号 |
| < | 小于号 |
| " | 引号 |
| © | 版权@符号 |
| ® | 注册商标 |
## 图片
> 网页中能用的图片类型: jpg/jpeg, gif, png,bmp, 类型之间区别css课程会讲解! 不能插入的图片类型 *.psd, ai
HTML页面不是直接插入图片,而是插入图片的引用地址,所以也要把图片上传到服务器上,语法:
- 语法
```
<img src="图片路径" alt="错误提示" >
```
img 是英文`image` 图片的简写
src 是应为`source` 资源的简写, 千万那别写成 scr
src是 img标签的属性, 双引号中是属性的值!
这个标签和我们之前学的,都不一样,因为这个标签不是“对儿”。自封闭标签,也称为单标签。
为什么?原因很简单,如果是对儿,里面就要有内容,表示给这个内容增加语义。比如
```
<h1>哈哈哈哈,我是主标题啦!!!</h1>
```
图片就是一个图片,不需要给什么文字增加语义,所以就是自己一个人活得挺好!
- alt 属性
alt是英语alternate“替代”的意思,就表示不管因为什么原因,当这个图片无法被显示的时候,出现的替代文字。
![](https://box.kancloud.cn/9440806ebe56ae3dfa519a655efd7696_270x178.png)
- 相对路径
HTML中插入图片,所以现在有两个文件,一个html文件,一个是jpg文件。
我们关心的就是这两个文件的相对位置。即使这个网站项目,被用u盘拷给了别人,只要相对路径不变。图片一定能够正常显示。
当图片在文件夹里面的时候
![](https://box.kancloud.cn/4f6b08b3e355d062cc88ff43ce937bf4_254x128.png)
```
<img src="images/baby.jpg" alt="巴黎结婚照" />
```
如果在很深的文件夹中,也不怕,可以一直罗列下去:
```
<img src="images/jiehunzhao/baby.jpg" alt="巴黎结婚照" />
```
如果情况变得复杂,我们的图片在浅一层的文件夹中:
![](https://box.kancloud.cn/432ec22b1d3dc7cc85a1051909cbe62d_255x180.png)
```
<img src="../3.jpg" alt="" />
../ 标示上层目录
```
如果是上两级:
```
<img src="../../3.jpg" alt=""
```
相对路径不会出现这种情况:
```
aaa/../bbb/1.jpg
../要么不写,要么就写在开头。
```
![](https://box.kancloud.cn/ccd78943ef76a8fd5127001ccce7f61a_158x76.png)
![](https://box.kancloud.cn/a6de90f8a046562234b232896bc69977_353x219.png)
```
标准答案:
<img src="../../photo/1.png" />
```
解释:
现在document是最大的文件夹,里面有两个文件夹work和photo。work中又有一个文件夹叫做myweb。myweb文件夹里面有index.html。 所以index.html在myweb文件夹里面,上一级就是work文件夹,上两级就是document文件夹。通过document文件夹当做一个中转站,进入photo文件夹,看到了1.png。
表示一个区域!
## 超连接
>一个网站,是由很多html网页组成的,html网页之间能够通过超级链接互相跳转,从而形成了“网”。
```
<a href="页面地址" title='标题' target='目标打开位置'>图片或/文字</a>
<a href="1.html">结婚照</a>
```
效果图,字体颜色变色,自动添加下划线,鼠标滑过变小手
![](https://box.kancloud.cn/ce945de0663abc6b073f1a5eb23035ed_82x40.png)
a是英语anchor“锚”的意思,就好像这个页面往另一个页面扔出了一个锚。是一个文本级的标签。
![](https://box.kancloud.cn/7dfca246ad886927d770f64c4fb71738_183x114.png)
href是英语hypertext reference超文本地址的缩写。读作“喝瑞夫”,不要读作“喝夫”。
- 属性 title
![](https://box.kancloud.cn/ea55bfc3d948413174f4923ba9590907_309x86.png)
```
title是悬停文本,相当于图片标题
<a href="09_img.html" title="很好看哦">结婚照</a>
```
- 属性 target
```
target 是否在新窗口中打开
target实际上是“目标”的意思。
blank就是“空白”的意思,就表示新建一个空白窗口。为毛有一个_ ,就是规定,没啥好解释的。
<a href="09_img.html" title="很好看哦" target="_blank/_self">结婚照</a>
```
也就是说,如果不写target=”_blank”或 "_self "那么就是在当前窗口打开,如果写了,就是在新的空白标签页中打开。
清楚img和a标签的各自的属性:
```
<img src="1.jpg" />
<a href="1.html"></a>
```
- 网页内的锚点
页面当中可以有锚点,所谓的锚点,就是一个小标记,这个小标记是用户不可察觉的,用户不知道这里有一个标记。 相当于页面之间定位!!!网页太长时用!
锚点用name属性来设置,一个a标签如果name属性(或者id属性),那么就是页面的一个锚点。
```
<a name="锚点名">我的作品</a>
或者:
<a id="锚点名">我的作品</a>
使用:
网页名#锚点名
```
![](https://box.kancloud.cn/9ff59ebcc4cf099b27dba13f85722496_515x289.png)
如果有一个超级链接,指向页面中的锚点,那么就是:
```
<a href="#wdzp">点击我就查看我的作品</a>
```
![](https://box.kancloud.cn/69a3dcd2228bab620a929985512c361d_519x272.png)
- a 是一个文本级标签
比如一个段落中的所有文字都能够被点击,那么应该:
```
<p>
<a href="">段落段落段落段落段落段落</a>
</p>
```
a的语义要小于p,a就是可以当做文本来处理,所以p里面相当于放的就是纯文字。
## 有序列表
## 无序列表
## 自定义列表
# 如何丰富标签效果?
> 标签的核心是搭建网页结构 "语义化"内容, 无丰富的效果! 真实网站效果是非常丰富的!我们通过属性或 样式 关键字来控制表情的效果!
## 属性概念
属性概念源于生活! 生活物体(学名叫对象),的名词或形容词的描述叫"对象"
比如: 人: 姓名,性别,年龄, 生日,身高,体重等....
网页编程时,每个标签都可以当初一个物体.也有自己的属性!
比如: 图片: 宽 width,高 height ,字体颜色:,字体大小等
## 属性语法
```
<起始标签 属性1="值1" 属性2="值2" ...></结束标签>
不同属性之间通过空格隔开, 属性值用""引起来
```
案例:
```
图片控制宽高
<img src="路径" width="100px" height="100%"/>
div控制宽高
<div width="100px" height="200px"></div>
<h1 align="left/center/right">静夜色</h1>
`````
注意: 属性控制的样式是有限的,能力的方式是使用 样式关键字: style (风格/样式)
```
就不起作用!
<h1 color="red">静夜思</h1>
```
## style关键字
属性写在style关键字中! 属性和值之间用 冒号隔开,
多个之间用分号隔开! 这个是万能的!后期工作写法略微变化!
```
<起始标签 style="属性1:值1;属性2:值2;..."></结束标签>
```
案例:
```
<div style="width:100px;height:100px;background-color:red;">快1</div>
// margin:0 auto; div居中
<div style="width:100px;height:100px;background-color:red; margin: 0 auto;">快2</div>
//字体居中
<div style="width:100px;height:100px;background-color:red; text-align:center">快2</div>
<img style="width:100px;height:100px"/>
//行标签 字形,大小,粗细
欢迎
<span style="color:red;font-size:30px;font-family:'宋体';font-width:'bold';">
张局长</span> 来视察
```
## 标签常用属性
以下是常用的属性,可以完成我们网页80%的工作流 ,可先记住
| 常用属性 | 说明 |
| --- | --- |
| width | 宽度 单位 %或px |
| height | 高度 |
| border | 边框 broder:1px solid red |
| color | 字体颜色 |
| background-color | 背景颜色 |
| font-size | 字体大小 |
| align/text-align/margin:0 auto; | 居中属性 |
| float | 浮动 |
# 编程规范
1. HTML内容结构要求符合语义化
1. 标签必须被正确地嵌套。
2. 标签必须被关闭。
3. 标签名必须用小写字母。
4. 属性值必须用引号扩起来
5. 要注意缩进,提高可度性
# 总结:
1. 基本环境
2. 标签能为页面添加效果
3. 常用标签
4. 属性和style控制外观
5. 常用属性
6. 规范
难点: 标签,为表情添加样式