前言:
网页的相关概念:
网址:我们在浏览器中输入的地址。
网页:浏览器所呈现的每一个页面。
网站:多个网页构成了一个网站。
网页的标准:
结构:HTML
表现:CSS
行为:JavaScript
一、什么是HTML?
HTML(是 HyperText Markup Language的缩写)
中文译名:超文本标记语言。
各部分理解:
超文本:指的就是超链接,这里可以理解为超越普通文本的限制,比普通的文本更强大,相比于普通文本,超文本除了文本数据外还可以存在视频、图片、音频和超链接等内容
标记:标记就是标签,HTML是由一系列预先定义好的标签组成,标签又称为元素,是HTML的基本组成单元
语言:HTML是一个标记语言,存在自己的语法规范和使用规则
HTML发展历史(了解即可)
1993年06月,由IETF(国际互联网工程任务组)发布了HTML1.0草案
1995年11月,由IETF正式发布HTML2.0
1996年09月,IETF关闭HTML工作组,由W3C(万维网联盟)接手HTML的规范制定
1997年01月,由W3C发布HTML3.2
1997年12月,由W3C发布HTML4.0
...
2000年左右:随着互联网的高速发展,产生了更多的需求,例如在线影音、在线游戏....
HTML4.0规范不支持这些需求的实现
2000年-2004年:W3C着手制定XHTML规范,并没有继续更新HTML规范,此时Adobe Flash Player出现,
其支持在线影音和在线游戏的特性,使其迅速占领了web互联网的应用市场
2004年-2014年:由WHATWG(众多浏览器厂商建立)和W3C一同制定了新一代的HTML标准,即HTML5
2014年,由W3C正式发布HTML5
随着HTML5的新标准出现,web网页开发进入迅速发展阶段,而flash由于其占用cpu资源过于庞大,逐渐走向没落,于2020年底已经停止更新
二、HTML5相关介绍
现在我们学习的HTML都是代指HTML5,即HTML最新一代的标准
-
HTML5
在狭义上是指新一代的HTML
标准,在广义上是指:整个前端
因为HTML5的优势,使得其能完成很多功能:
针对 JavaScript ,新增了很多可操作的接口。
新增了一些语义化标签、全局属性。
新增了多媒体标签,可以很好的替代 flash 。
更加侧重语义化,对于 SEO 更友好。
可移植性好,可以大量应用在移动设备上
SEO:指的是搜索引擎优化,目的是让浏览器的搜索引擎能够快速检索到你写的网页(在不花费额外费用的情况下,增加网站(由多个网页组成)的曝光度-->引流)
HTML5兼容性
-
支持: Chrome 、 Safari 、 Opera 、 Firefox 等主流浏览器。
-
IE 浏览器必须是 9 及以上版本才支持 HTML5 ,且 IE9 仅支持部分 HTML5 新特性。
三、新增语义化标签
1.新增布局标签
标签名 | 语义 | 单/双标签 |
header | 整个页面,或部分区域的头部 | 双 |
footer | 整个页面,或部分区域的底部 | 双 |
nav | 导航 | 双 |
article | 文章、帖子、杂志、新闻、博客、评论等。 | 双 |
section | 页面中的某段文字,或文章中的某段文字(里面文字通常里面会包含标题)。 | 双 |
aside | 侧边栏 | 双 |
main | 文档的主要内容(WHATWG没有语义,IE不支持),几乎不用。 | 双 |
hgroup | 包裹连续的标题,如文章主标题、副标题的组合(W3C 将其删除) | 双 |
关于article和 section:
1. artical 里面可以有多个 section。
2. section 强调的是分段或分块,如果你想将一块内容分成几段的时候,可使用section元素。
3. article比 section 更强调独立性,一块内容如果比较独立、比较完整,应该使用article元素。
2.新增状态标签
2.1 meter 标签
-
语义:定义已知范围内的标量测量。也被称为 gauge(尺度),双标签,例如:电量、磁盘用量等。
-
常用属性如下:
属性 | 值 | 描述 |
high | 数值 | 规定高值 |
low | 数值 | 规定低值 |
max | 数值 | 规定最大值 |
min | 数值 | 规定最小值 |
optimum | 数值 | 规定最优值 |
value | 数值 | 规定当前值 |
2.2 progress标签
-
语义:显示某个任务完成的进度的指示器,一般用于表示进度条,双标签,例如:工作完成进度等。
-
常用属性如下:
属性 | 值 | 描述 |
max | 数值 | 规定目标值。 |
value | 数值 | 规定当前值。 |
3.新增列表标签
标签名 | 语义 | 单/双标签 |
datalist | 用于搜索框的关键字提示 | 双 |
details | 用于展示问题和答案,或对专有名词进行解释 | 双 |
summary | 写在 details的里面,用于指定问题或专有名词 | 双 |
input type="text" list="mydata">
<datalist id="mydata">
<option value="小明">小明</option>
<option value="小王">小王</option>
<option value="小李">小李</option>
<option value="VaporGas">VaporGas</option>
</datalist>
<details>
<summary>如何学好HTML?</summary>
<p>学好标签的使用</p>
</details>
4.新增文本标签
4.1文本注音
标签名 | 语义 | 单/双标签 |
ruby | 包裹需要注音的文字 | 双 |
rt | 写注音,rt 标签写在ruby的里面 | 双 |
<ruby>
<span>魑魅魍魉</span>
<rt>chī mèi wǎng liǎng </rt>
</ruby>
4.2文本标记
标签名 | 语义 | 单/双标签 |
mark | 标记 | 双 |
注意:W3C 建议 mark 用于标记搜索结果中的关键字。
四、新增表单功能
1.表单控件新增属性
属性名 | 功能 |
placeholder | 提示文字(注意:不是默认值,value是默认值),适用于文字输入类的表单控件。 |
required | 表示该输入项必填,适用于除按钮外其他表单控件。 |
autofocus | 自动获取焦点,适用于所有表单控件。 |
autocomplete | 自动完成,可以设置为on或off,适用于文字输入类的表单控件。注意:密码输入框、多行输入框不可用。 |
pattern | 填写正则表达式,适用于文本输入类表单控件。注意:多行输入不可用,且空的输入框不会验证,往往与required配合。 |
1.1.input新增属性值
属性名 | 功能 |
邮箱类型的输入框,表单提交时会验证格式,输入为空则不验证格式。 | |
ur1 | ur1类型的输入框,表单提交时会验证格式,输入为空则不验证格式。 |
number | 数字类型的输入框,表单提交时会验证格式,输入为空则不验证格式。 |
search | 搜索类型的输入框,表单提交时不会验证格式。 |
tel | 电话类型的输入框,表单提交时不会验证格式,在移动端使用时,会唤起数字键盘。 |
range | 范围选择框,默认值为50,表单提交时不会验证格式。 |
color | 颜色选择框,默认值为黑色,表单提交时不会验证格式。 |
date | 日期选择框,默认值为空,表单提交时不会验证格式。 |
month | 月份选择框,默认值为空,表单提交时不会验证格式。 |
week | 周选择框,默认值为空,表单提交时不会验证格式。 |
time | 时间选择框,默认值为空,表单提交时不会验证格式。 |
datetime-local | 日期+时间选择框,默认值为空,表单提交时不会验证格式。 |
1.2.form标签新增属性
属性名 | 功能 |
novalidate | 如果给form标签设置了该属性,表单提交的时候不再进行验证。 |
五、新增多媒体标签
1.视频标签
<video>
标签用来定义视频,它是双标签。
属性 | 值 | 描述 |
src | URL地址 | 视频地址 |
width | 像素值 | 设置视频播放器的宽度 |
height | 像素值 | 设置视频播放器的高度 |
controls | - | 向用户显示视频控件(比如播放/暂停按钮) |
muted | - | 视频静音 |
autoplay | - | 视频自动播放 |
loop | - | 循环播放 |
poster | URL地址 | 视频封面 |
preload | auto/metadata/none | 视频预加载,如果使用 autoplay,则忽略该属性。none:不预加载视频。·metadata:仅预先获取视频的元数据(例如长度)。auto:可以下载整个视频文件,即使用户不希望使用它。 |
2.音频标签
<audio>
标签用来定义音频,它是双标签。
属性 | 值 | 描述 |
src | URL地址 | 音频地址 |
controls | - | 向用户显示音频控件(比如播放/暂停按钮) |
autoplay | - | 音频自动播放 |
muted | - | 音频静音 |
loop | - | 循环播放 |
preload | auto/metadata/none | 音频预加载,如果使用autoplay,则忽略该属性。none:不预加载音频。·metadata:仅预先获取音频的元数据(例如长度)。·auto:可以下载整个音频文件,即使用户不希望使用它。 |
六、新增全局属性(了解)
属性名 | 功能 |
contenteditable | 表示元素是否可被用户编辑,可选值如下:true:可编辑false:不可编辑 |
draggable | 表示元素可以被拖动,可选值如下:true:可拖动false:不可拖动 |
hidden | 隐藏元素 |
spellcheck | 规定是否对元素进行拼写和语法检查,可选值如下:true:检查false:不检查 |
contextmenu | 规定元素的上下文菜单,在用户鼠标右键点击元素时显示。 |
data-* | 用于存储页面的私有定制数据。 |
七、HTML5兼容性处理
-
添加元信息,让浏览器处于最优渲染模式。
<!--设置IE总是使用最新的文档模式进行渲染-->
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<!--优先使用 webkit ( Chromium ) 内核进行渲染, 针对360等壳浏览器-->
<meta name="renderer" content="webkit">
-
使用htm15shiv 让低版本浏览器认识H5的语义化标签。
<!--[if lt ie 9]>
<script src="../sources/js/html5shiv.js"></script>
<![endif]-->
-
扩展
lt
小于
lte
小于等于
gt
大于
gte
大于等于
!
逻辑非
-
示例:
<!--[if IE 8]>仅IE8可见<![endif]-->
<!--[if gt IE 8]>仅IE8以上可见<![endif]—>
<!--[if lt IE 8]>仅IE8以下可见<![endif]—>
<!--[if gte IE 8]>IE8及以上可见<![endif]—>
<!--[if lte IE 8]>IE8及以下可见<![endif]—>
<!--[if !IE 8]>非IE8的IE可见<![endif]-->