HTML学习笔记
一、web 基础认知
1、web 基础概念
- 网站——在因特网上根据一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合
- 网页(HTML文件)——由文字、图像和超链接等元素构成,包括音频、视频以及Flash等
- 浏览器——网页显示、运行的平台
- 浏览器内核——排版引擎、解释引擎、渲染引擎
2、web 标准
- 由结构标准,表现标准和行为标准构成
标准 | 说明 |
---|---|
结构 | 用于对网页元素进行整理和分类(HTML) |
表现 | 用于设置网页元素的版式、颜色,大小等外观样式(CSS) |
行为 | 用于对网页模型的定义及交互的编写(JavaScript) |
二、认识 HTML
1、HTML 的定义
- HTML(Hyper Text Markup Language):超文本标记语言
- HTML基本骨架格式
<!-- 页面中最大的标签——根标签 -->
<html>
<!-- 头部标签 -->
<head>
<!-- 标题标签 -->
<title></title>
</head>
<!-- 文档的主体 -->
<body>
</body>
</html>
注意:HTML标签名、类名、标签属性和大部分属性值统一用小写
标签名 | 定义 | 说明 |
---|---|---|
html | HTML标签 | 页面中最大的标签(根标签) |
head | 文档的头部 | head标签中必须要设置title标签 |
title | 文档的标题 | 网页标题 |
body | 文档的主体 | 元素包含文档的所有内容,页面内容基本是放在body里面 |
- HTML元素标签分类
- 常规元素(双标签)
- 空元素(单标签)
常规元素(双标签)
<标签名> 内容 </标签名> 例:<body>我是文字</body>
空元素(单标签)
<标签名 /> 例:<br />或<br>
- HTML标签关系
- 嵌套关系:父子级,包含关系
- 并列关系:兄弟级,并列关系
- 如果两个标签之间的关系是嵌套关系,子元素最好缩进一个tab键(如果是并列关系,最好上下对齐)
2、文档类型
- 文档类型用来说明所用的XHTML或者HTML是什么版本,
<!DOCTYPE html>
告诉浏览器按照HTML5标准解析页面。
3、页面语言
- lang 指定该 html 标签内容所用的语言
<html lang="en">
en 定义语言为英语 zh-CN定义语言为中文
- lang的作用
- 根据根据lang属性来设定不同语言的css样式,或者字体
- 告诉搜索引擎做精确的识别
- 让语法检查程序做语言识别
- 帮助翻译工具做识别
- 帮助网页阅读程序做识别
4、字符集(拓展)
-
字符集(Character set)是多个字符的集合,计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
- UTF-8是目前最常用的字符集编码方式
- 让 html 文件是以 UTF-8 编码保存的, 浏览器根据编码去解码对应的html内容
<meta charset="UTF-8" />
-
meta viewport的用法
- 通常 viewport 是指视窗、视口。浏览器上(也可能是一个 app 中的 webview)用来显示网页的那部分区域。在移动端和pc端视口是不同的,pc端的视口是浏览器窗口区域,而在移动端有三个不同的视口概念:布局视口、视觉视口、理想视口
- meta 有两个属性 name 和 http-equiv
-
name属性的取值
- keywords(关键字) 告诉搜索引擎,该网页的关键字
- description(网站内容描述) 用于告诉搜索引擎,你网站的主要内容。
- viewport(移动端的窗口)
- robots(定义搜索引擎爬虫的索引方式) robots用来告诉爬虫哪些页面需要索引,哪些页面不需要索引
- author(作者)
- generator(网页制作软件)
- copyright(版权)
-
http-equiv有以下参数
http-equiv相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容- content-Type 设定网页字符集(html4用法,不推荐)
- Expires(期限) ,可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输
- Pragma(cache模式),是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出
- Refresh(刷新),自动刷新并指向新页面
- cache-control(请求和响应遵循的缓存机制)
<meta name="viewport" content="width=device-width, initial-scale=1.0">
5、HTML标签语义化
-
方便代码的阅读和维护,样式丢失的时候能让页面呈现清晰的结构
-
有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重
-
方便其他设备解析,如盲人阅读器根据语义渲染网页
-
拓展:规定页面上所有链接的默认 URL 和设置整体链接的打开状态
<head>
<base href="http://www.baidu.com" target="_blank">
<base target="_self">
</head>
<body>
<a href="">测试</a> 跳转到百度
</body>
三、HTML基本标签
1、排版标签
- 与css搭配使用,显示网页结构的标签,是网页布局最常用的标签
1)标题标签
- HTML提供了6个等级的网页标题,即
<h1> ~ <h6>
,重要性依次递减。 - 特点:
- 加了标题的文字会变得加粗,字号也会依次变大
- 一个标题独占一行。
<h1>1级标题</h1> <h2>2级标题</h2> <h3>3级标题</h3> <h4>1级标题</h4> <h5>1级标题</h5> <h6>1级标题</h6>
2)段落标签
- 用于定义段落,可以把 HTML 文档分割为若干段落。
- 特点:
- 文本在一个段落中会根据浏览器窗口的大小自动换行。
- 段落和段落之间保有空隙。
<p>我是一段文字</p>
3)水平线标签
- 分割不同主题内容的水平线
- 特点:
<hr>
是一个单标签- 在页面中显示一条水平线
4)换行标签
- 将某段文本强制换行显示
- 特点:
<br>
是一个单标签<br>
标签只是简单地开始新的一行,段落之间则会插入一些垂直的间距
5)div和span标签
- 没有语义,是网页布局最主要的2个盒子(网页布局)
- 特点:一行只能放一个
<div>
,一行可以放多个<span>
<div> 这是头部 </div> <span>今日价格</span>
2、文本格式化标签
- 为文字设置粗体、斜体或下划线等效果,使文字以特殊的方式显示
语义 | 标签 |
---|---|
加粗 | <strong></strong> 或者<b></b> |
倾斜 | <em></em> 或者<i></i> |
删除线 | <del></del> 或者<s></s> |
下划线 | <ins></ins> 或者<u></u> |
3、媒体标签
1)图片标签
- 在HTML标签中,
<img>
标签用于定义HTML页面中的图像。src
是<img>
标签的必须属性,用于指定图像文件的路径和文件名 - 代码:
<img src="" width="" height="" border="" title="">
- 注意:
- 标签可以拥有多个属性,必须写在开始标签中,位于标签名后面
- 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开
- 采取键值对的格式 key=“value” 的格式
属性 | 属性值 | 说明 |
---|---|---|
src | 目标图片的路径 | 必须属性 |
alt | 替换文本 | 图像不能显示时的替换文本 |
title | 提示文本 | 鼠标悬停时显示的内容 |
width | 像素 | 图像的宽度 |
height | 像素 | 图像的高度 |
border | 像素 | 图像边框的粗细 |
- 路径问题:
路径分类 | 符号 | 说明 |
---|---|---|
同一级路径 | 只需要输入图像文件的名称即可,如<img src="baidu.png"> ![]() | |
下一级路径 | “/” | 图像文件位于HTML文件同级文件夹下(例如文件夹名称为:images),如<img src="images/baidu.png"> ![]() |
上一级路径 | “…/” | 在文件名之前加入"…/“,如果是上两级,则需要使用”…/…/",以此类推,如<img src="../baidu.png"> ![]() |
2)音频标签
- 在页面中插入音频
- 代码:
<audio src="./music.mp3" controls></audio>
属性名 功能 src 音频的路径 controls 显示播放的控件 autoplay 自动播放(部分浏览器不支持) loop 循环播放
3)视频标签
- 在页面中插入视频
- 代码:
<video src="./video.mp4" controls></video>
属性名 功能 src 视频的路径 controls 显示播放的控件 autoplay 自动播放(谷歌浏览器中需配合muted实现静音播放) loop 循环播放
4、链接标签(重点)
-
点击之后,从一个页面跳转到另一个页面
-
代码:
<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a> <!-- target="_self" 默认窗口弹出方式 --> <!-- target="_blank" 新窗口弹出 -->
属性 作用 href 链接目标的 url 地址,必须属性为标签应用 href 属性时,有超链接的功能 target 链接页面的打开方式,有 _self 和 _blank 两种,其中 _self 为默认值,在当前窗口跳转,即覆盖原网页,_blank 为在新窗口中打开方式,即保留原网页 -
注意:src 和 href 的区别——src 是引入资源的,href 是跳转url的
- src用于替换当前元素,href用于在当前文档和引用资源之间确立联系
- src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内
- href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接。
-
其他:
- 外部链接——需要添加 http:// www.baidu.com
- 内部链接——直接链接内部页面名称即可,比如 < a href=“index.html”> 首页
- 如果没有确定链接目标时,则
href="#"
,表示该链接暂时为一个空链接 - 网页中各种网页元素,如图像、表格、音频、视频等都可以添加超链接
-
锚点定位:
- 通过创建锚点链接,用户能够快速定位到目标内容
<!-- 1、使用相应的id名标注跳转目标的位置。 (找目标) --> <h3 id="two">第2集</h3> <!-- 2、使用<a href="#id名">链接文本</a>创建链接文本(被点击的) --> <a href="#two">
5、注释标签
- 注释的作用
- 为代码添加的具有解释性、描述性的信息,主要用来帮助开发人员理解代码
- 浏览器执行代码时会忽略所有的注释
- 注意:注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
<!-- 注释语句 --> <!-- 快捷键是:ctrl + / 或者 ctrl +shift + / -->
四、表格标签
1、表格标签
-
场景:在网页中以行+列的单元格的方式整齐展示和数据,如:学生成绩表
-
基本标签:
<table> <tr> <td>单元格内容</td> ... </tr> ... </table>
-
表头单元格标签
<th>
:一般表头单元格位于表格的第一行或第一列,且文本加粗居中,用表头标签<th></th>
替代相应的单元格标签<td></td>
即可
-
表格标题
<caption>
:通常这个标题会被居中且显示于表格之上,<caption>
标签必须紧随<table>
标签之后,此标签只在表格里面才有意义<table> <caption>表格的标题</caption> </table>
-
注意点:标签的嵌套关系:table > tr > td
3、表格属性(了解)
属性名 | 属性值 | 描述 |
---|---|---|
align | left、center、right | 规定表格相对周围元素的对齐方式 |
border | 1或者"" | 规定表格单元是否拥有边框,默认为"" ,表示没有边框 |
cellpadding | 像素值 | 规定单元边沿与其内容之间的空白,默认1像素 |
cellspacing | 像素值 | 规定单元格之间的空白,默认2像素 |
width | 像素值或百分比 | 规定表格的宽度 |
height | 像素值或百分比 | 规定表格的高度 |
4、合并单元格
-
将水平或垂直多个单元格合并成一个单元格
-
合并按照先上后下,先左后右的顺序,合并后删除多余的单元格
-
给保留的单元格设置:跨行合并(rowspan)或者跨列合并(colspan)
属性名 属性值 说明 rowspan 合并单元格的个数 跨行合并,将多行的单元格垂直合并 colspan 合并单元格的个数 跨列合并,将多行的单元格垂直合并 -
注意点:只有同一个结构标签中的单元格才能合并,不能跨结构标签合并(不能跨:thead、tbody、tfoot)
5、表格总结
标签名 | 定义 | 说明 |
---|---|---|
<table></table> | 表格标签 | 就是一个四方的盒子 |
<tr></tr> | 表格行标签 | 行标签要再table标签内部才有意义 |
<td></td> | 单元格标签 | 单元格标签是个容器级元素,可以放任何东西 |
<th></th> | 表头单元格标签 | 它还是一个单元格,但是里面的文字会居中且加粗 |
<caption></caption> | 表格标题标签 | 表格的标题,跟着表格一起走,和表格居中对齐 |
clospan 和 rowspan | 合并属性 | 用来合并单元格 |
6、表格结构划分
- 将表格分成三个部分:题头、正文和脚注
- 注意:
<thead></thead>
:用于定义表格的头部,用来放标题之类的东西, 内部必须拥有 标签<tbody></tbody>
:用于定义表格的主体,放数据本体<tfoot></tfoot>
:放表格的脚注之类- 以上标签都是放到
<table>
标签中
五、列表标签
-
列表——容器里面装载着结构,样式一致的文字或图表的一种形式
-
列表最大的特点就是整齐、整洁、有序,跟表格类似,但是它可组合自由度会更高
1、无序列表(重要)
- 在网页中表示一组无顺序之分的列表
- 标签组成:
<ul> <li>列表项1</li> <li>列表项2</li> <li>列表项3</li> </ul>
- 显示特点:
- 列表的每一项前默认显示圆点标识
- 注意:
<ul></ul>
中只能嵌套<li></li>
,直接在<ul></ul>
标签中输入其他标签或者文字的做法是不被允许的<li>
与</li>
之间相当于一个容器,可以容纳所有元素
2、有序列表
- 在网页中表示一组有顺序之分的列表,如:排行榜
- 标签的组成:
<ol type="A"> <li>列表一</li> <li>列表二</li> <li>列表三</li> </ol>
- 显示特点:
- 列表的每一项前默认显示序号标识
- 注意:
<ol>
标签中的type属性值为排序的序列号,不添加type属性时,有序列表默认从数字1开始排序- 常用的type属性值分别为是1,a,A,i,I
<ol reversed="reversed">
中的reversed属性能够让有序列表中的序列倒序排列<ol start="3">
中的start属性值为3,有序列表中的第一个序列号将从3开始排列
3、自定义列表
- 在网页的底部导航中通常会使用自定义列表实现
- 自定义列表常用于对术语或名词进行解释和描述,自定义列表的列表项前没有任何项目符号
- 标签组成:
<dl> <dt>名词1</dt> <dd>名词1解释1</dd> <dd>名词1解释2</dd> ... <dt>名词2</dt> <dd>名词2解释1</dd> <dd>名词2解释2</dd> ... </dl>
六、表单标签
- 在HTML中,一个完整的表单由
<u>
表单控件(表单元素)</u>
、<u>
提示信息</u>
和<u>
表单域</u>
3个部分构成。表单目的是为了收集用户信息。
- 表单控件:包含了具体的表单功能项,如单行文本输入框、密码输入框、复选框、提交按钮、重置按钮等
- 提示信息:一个表单中通常还需要包含一些说明性的文字,提示用户进行填写和操作
- 表单域:它相当于一个容器,用来容纳所有的表单控件和提示信息,可以通过他定义处理表单数据所用程序的url地址,以及数据提交到服务器的方法。如果不定义表单域,表单中的数据就无法传送到后台服务器
1、form表单域
- 收集的用户信息怎么传递给服务器?答:通过form表单域
- 目的:在HTML中,form标签被用于定义表单域,以实现用户信息的收集和传递,form中的所有内容都会被提交给服务器。
<form action="url地址" method="提交方式" name="表单名称">
各种表单控件
</form>
常用属性:
- 每个表单都应该有自己的表单域
属性 | 属性值 | 作用 |
---|---|---|
action | url地址 | 指定接收并处理表单数据的服务器程序的url地址。 |
method | get/post | 设置表单数据的提交方式,其取值为get或post。 |
name | 名称 | 指定表单的名称,以区分同一个页面中的多个表单。 |
GET 和 POST 的区别(拓展)
- GET在浏览器回退时是无害的,而POST会再次提交请求
- GET请求会被浏览器主动cache,而POST不会,除非手动设置
- GET请求只能进行url编码,而POST支持多种编码方式
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
- GET请求大小一般是(1024字节),http协议并没有限制,而与服务器,操作系统有关,POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
- GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
2、input 标签
-
在网页中显示收集用户信息的表单效果
- input 输入的意思,
<input />
标签为单标签 - type 属性设置不同的属性值用来指定不同的控件类型,除了 type 属性还有别的属性
<input type="属性值" value="你好">
- input 输入的意思,
-
type 属性:
属性 属性值 描述 type text 单行文本输入框 password 密码输入框 radio 单选按钮 checkbox 复选按钮 button 普通按钮 submit 提交按钮 reset 重置按钮 image 图像形式的提交按钮 file 文件域 name 用户自定义 控件名称 value 用户自定义 默认文本值 size 正整数 控件在页面中的显示宽度 checked checked 定义选择控件默认被选中项 maxlength 正整数 控件允许输入的最多字符 placeholder 用户自定义 提示用户输入内容的文本 用户名: <input type="text" /> 密 码:<input type="password" />
-
value属性:
value 默认的文本值。有些表单想刚打开页面就默认显示几个文字,就可以通过这个value 来设置。用户名:<input type="text" name="username" value="请输入用户名">
-
name属性
- name表单的名字, 这样,后台可以通过这个name属性找到这个表单。 页面中的表单很多,name主要作用就是用于区别不同的表单。
- name属性后面的值,是我们自己定义的。
- radio 如果是一组,我们必须给他们命名相同的名字 name 这样就可以多个选其中的一个啦
<input type="radio" name="sex" />男 <input type="radio" name="sex" />女
-
checked属性
表示默认选中状态。 较常见于单选按钮和复选按钮。性 别: <input type="radio" name="sex" value="男" checked="checked" />男 <input type="radio" name="sex" value="女" />女
-
input 属性总结
属性 说明 作用 type 表单类型 用来指定不同的控件类型 value 表单值 表单里面默认显示的文本 name 表单名字 页面中的表单很多,name主要作用就是用于区别不同的表单。 checked 默认选中 表示那个单选或者复选按钮一开始就被选中了
3、button 按钮标签
- 在网页中显示用户点击的按钮
- 标签名:button
- type属性值(同input的按钮系列):
标签名 type属性值 说明 button submit 提交按钮,点击之后提交数据给后端服务器 button reset 重置按钮,点击之后恢复表单默认值 button button 普通按钮,默认无功能,之后配合js添加功能
4、label 标签
-
<label>
标签主要目的是为了提高用户体验,为用户提高最优秀的服务 -
作用:用于绑定一个表单元素, 当点击
<label>
标签的时候, 被绑定的表单元素就会获得输入焦点 -
使用方法
- 第一种用法就是用
<label>
标签直接包含input表单,适合单个表单选择 - 第二种用法
for
属性规定<label>
与哪个表单元素绑定(通过id
属性)
<!-- 第一种 --> <label> 用户名: <input type="radio" name="usename" value="请输入用户名"> </label> <!-- 第二种 --> <label for="sex">男</label> <input type="radio" name="sex" id="sex">
- 第一种用法就是用
5、select下拉菜单标签
- 在网页中提供多个选择项的下拉菜单表单控件
- 标签组成:
<select> <option>选项1</option> <option>选项2</option> <option>选项3</option> ... </select>
- 在
option
中定义selected ="selected"
时,当前项即为默认选中项。
6、textarea文本域标签
- 通过
<textarea>
控件可以创建多行文本输入框
cols="每行中的字符数" rows="显示的行数"
<textarea > 文本内容 </textarea>
- 文本框和文本域区别
表单 名称 区别 默认值显示 用于场景 <input type="text">
文本框 只能显示一行文本 单标签,通过value显示默认值 用户名、昵称、密码等 <textarea>
文本域 可以显示多行文本 双标签,默认值写到标签中间 留言板
七、语义化标签
1、没有语义的布局标签
- 实际开发网页时会大量频繁的使用到
<div>
和<span>
这两个没语义的布局标签 <div>
标签:一行只显示一个(独占一行)<span>
标签:一行可以显示多个
2、有语义的布局标签(了解)
- 在HTML5新版本中,推出了一些有语义的布局标签供开发者使用
- 标签:
标签名 语义 header 网页头部 nav 网页导航 footer 网页底部 aside 网页侧边栏 section 网页区块 article 网页文章
八、字符实体
1、HTML的空格合并现象
- 如果在html代码中同时并列出现多个空格、换行、缩进等,最终浏览器只会解析出一个空格
2、常见字符实体
- 在网页中展示特殊符号效果时,需要使用字符实体替代
显示结果 描述 实体名称 空格
< 小于号 <
> 大于号 >
& 和号 &
" 引号 "
' 撇号 '
¢ 分(cent) ¢
£ 镑(pound) £
¥ 元(yen) ¥
€ 欧元(euro) €
§ 小节 §
© 版权(copyright) ©