--------------------- HTML5 的新特性 ------------------
HTML5 的新增特性主要是针对于以前的不足,增加了一些 新的标签 、新的表单 和 新的表单属性 等。
这些新特性都有兼容性问题,基本是 IE9+ 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。
声明:
- 新特性增加了很多,但是我们专注于开发常用的新特性。
- 基础班我们讲解部分新特性,到了就业班还会继续讲解其他新特性。
--------------------- 广义的HTML5 ------------------
- 广义的 HTML5 是 HTML5 本身 + CSS3 + JavaScript 。
- 这个集合有时称为 HTML5 和朋友,通常缩写为 HTML5 。
- 虽然 HTML5 的一些特性仍然不被某些浏览器支持,但是它是一种发展趋势。
- HTML5 MDN 介绍:
https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML
--------------------- HTML5 新增的语义化标签 ------------------
1.1 HTML5 新增的语义化标签
以前布局,我们基本用 div 来做。div 对于搜索引擎来说,是没有语义的。
<header>: 头部标签
<nav>: 导航标签
<article>: 内容标签
<section>: 定义文档某个区域
<aside>: 侧边栏标签
<footer>: 尾部标签
注意:
- 这种语义化标准主要是针对 搜索引擎 的
- 这些新标签页面中可以使用 多次
- 在 IE9 中,需要把这些元素转换为 块级元素!!
- 其实,我们移动端更喜欢使用这些标签
- HTML5 还增加了很多其他标签,我们后面再慢慢学
--------------------- HTML5 新增的多媒体标签 ------------------
1.2 HTML5 新增的多媒体标签
新增的多媒体标签主要包含两个:
- 音频:<audio>
- 视频:<video>
使用它们可以很方便的在页面中嵌入音频和视频,而不再去使用 flash 和其他浏览器插件
HTML5 在不使用插件的情况下,也可以原生的支持视频格式文件的播放,当然,支持的格式是有限的。
1.21 视频 <video> ( MP4 、 WebM 、 Ogg )
当前 <video> 元素支持三种视频格式: 尽量使用 mp4 格式
<video src="文件地址" controls="controls"></video>
<!-- 如何考虑兼容性问题 -->
首先用 MP4格式, 当MP4格式不支持时再用ogg格式,以此类推,多放几个格式
<video src="" width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
您的浏览器不支持 video 标签
</video>
1. 视频——常见属性
autoplay=autoplay 视频就绪自动播放 (谷歌浏览器自动播放需要添加 muted=muted 来解决自动播放问题)
muted=muted 静音播放
controls=controls 像用户显示播放控件
width=800px 设置 宽
height=400px 设置 高
loop=loop 播放完是否继续播放该视频,循环播放
preload= auto(预先加载视频) none(不应加载视频)
规定是否预先加载视频!!!如果有了autoplay视频就绪自动播放,就忽略该属性!!!
poster=lmgurl 加载等待的画面图片
src url 视频url位置
<!-- 这个是小米的案例, 这个就不加入controls控件的。 -->
<video src="media/mi.mp4" autoplay="autoplay" muted="muted" loop="loop" poster="medi/mi9.jpg" class="ship">
</video>
1.22 音频<audio> ( MP3 、 Wav 、 Ogg )
HTML5 在不使用插件的情况下,也可以原生的支持音频格式文件的播放,当然,支持的格式是有限的。 ( 主要用 mp3 )
<audio src="文件地址" controls="controls"></audio>
< audio controls="controls" >
<source src="happy.mp3" type="audio/mpeg" >
<source src="happy.ogg" type="audio/ogg" >
您的浏览器暂不支持 <audio> 标签。
</ audio>
音频标签的 常规属性
他们的使用方法基本一致
autoplay=autoplay 音频就绪马上播放
controls=controls 向用户显示控件,如果播放按钮
loop=loop 每当音频结束重现开始播放 也就是循环播放
src url 选择要播放的音频的位置
<audio src="media/music.mp3" autoplay="autoplay" controls></audio>
谷歌浏览器把音频和视频自动播放禁止了,视频用 muted 属性解决, 音频则只能用 JavaScript 来解决
3.多媒体标签总结
- 音频标签和视频标签使用方式基本一致
- 浏览器支持情况不同
- 谷歌浏览器把音频和视频自动播放禁止了
- 我们可以给视频标签添加 muted 属性来静音播放视频,音频不可以(可以通过JavaScript解决)
- 视频标签是重点,我们经常设置自动播放,不使用 controls 控件,循环和设置大小属性
--------------------- HTML5 新增的 input 类型 ------------------
1.3 HTML5 新增的 input 类型
<ul>
<li> <input type="email"> email Email类型 </li>
<li> <input type="url"> url 链接类型</li>
<li> <input type="date"> date 日期类型</li>
<li> <input type="time"> time 时间类型</li>
<li> <input type="month"> month 月 类型</li>
<li> <input type="week"> week 周 类型</li>
<li> <input type="number"> number 数字类型 </li>
<li> <input type="tel"> tel 手机号码</li>
<li> <input type="search"> search 搜索框</li>
<li> <input type="color"> color 生成一个颜色选择表单</li>
</ul>
重点 number tel search 这三个重点记住
--------------------- HTML5 新增的表单属性 ------------------
1.4 HTML5 新增的表单属性
- HTML5新增的input属性
属性 值 说明
required required 表示其内容不能为空,必填
placeholder 提示文本 表单的提示信息,存在默认值将不显示。
autofocus autofocus 自动聚焦属性,页面加载完成自动聚焦到指定表单
(就不需要你点击,可以直接打字输入)
multiple multiple 可以多选文件提交 在 file 中使用
autocomplete off/on 当用户在字段开始键入时,浏览器基于之前键入过的值,
应该显示出在字段中填写的选项。
默认已经打开, 如需要关闭,填 autocomple="off"
需要放在表单中,同时加上 name属性,同时成功提交
- 可以通过以下设置方式修改placeholder里面的字体颜色:
input::placeholder {
color: pink;
}
--------------------- CSS3 的新特性 ------------------
- 新增的CSS3特性有兼容性问题,ie9+才支持
- 移动端支持优于 PC 端
- 不断改进中
- 应用相对广泛
- 现阶段主要学习:新增选择器和盒子模型以及其他特性
--------------------- CSS3 新增选择器 ------------------
CSS3 给我们新增了选择器,可以更加便捷,更加自由的选择目标元素。
- 属性选择器
- 结构伪类选择器
- 伪元素选择器
------------- CSS3 新增选择器—属性选择器 ------------
1.0 属性选择器
属性选择器可以根据元素特定属性的来选择元素。 这样就可以不用借助于类或者id选择器。
注意:类选择器、属性选择器、伪类选择器,权重为 10。
1. E[att] 选择具有 att 属性的E元素
input[value] {
color: pink;
}
2. E[att="val"] 选择具有 att 属性 且 属性值等于 val 的E元素
input[type=text] {
color: pink;
}
3. E[att^="val"] 匹配具有 att 属性 且 属性值以 val 开头的E元素
div[class^=icon] {
color: red;
}
4. E[att$="val"] 匹配具有 att 属性 且 属性值以 val 结尾的E元素
section[class$=data] {
color: blue;
}
5. E[att*="val"] 匹配具有 att 属性 且 属性值中含有 val 的E元素
div,
section[class*=icon] {
color: chartreuse;
}
------------- CSS3 新增选择器—结构伪类选择器 ------------
2. 结构伪类选择器
结构伪类选择器主要根据 文档结构 来选择器元素, 常用于根据父级选择器里面的子元素
一. 选择ul里面的第一个小li E:first-child 匹配父元素中的 第一个 元素 E
ul li:first-child {
background-color: pink;
}
二. 选择ul里面的最后一个小li E:last-child 匹配父元素中的 最后一个 元素 E
ul li:last-child {
background-color: blue;
}
三. 选择ul里面的第n个子元素E E:nth-child(n) 匹配父元素中的第 n 个元素 E
nth 是第几个的意思 n可以是数字,关键字和公式
n 数字 就是选择第 n 个元素,里面数字从1开始…
关键字 even 偶数选择出来,
pdd 奇数
公式 n 从0开始计算 但是第 0 个元素或者超出了元素的个数会被忽略
2n 就是 偶数,类似even
2n+1 就是 奇数,类似pdd
5n 就是 5 10 15... (5是可以随意改的)
n+5 就是 从第5个开始(包含第五个)到最后
-n+5 就是 前5个,也就是从第一个到第五个{包含第五个}.... */
ul li:nth-child(n) {
background-color: chartreuse;
}
四.E:first-of-type 指定类型 E 的第一个
五.E:last-of-type 指定类型 E 的最后一个
六.E:nth-of-type(n) 指定类型 E 的第 n 个
区别:
- nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配
- nth-of-type 对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子
注意:类选择器、属性选择器、伪类选择器,权重为 10
2.1 结构伪类选择器—小结
- 结构伪类选择器一般用于选择父级里面的第几个孩子
- nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后看看是否和E匹配
- nth-of-type 对父元素里面指定子元素进行排序选择。 先去匹配E ,然后再根据E 找第n个孩子
- 关于 nth-child(n) 我们要知道 n 是从 0 开始计算的,要记住常用的公式
- 如果是无序列表,我们肯定用 nth-child 更多
- 类选择器、属性选择器、伪类选择器,权重为 10。
------------- CSS3 新增选择器—伪元素选择器 ------------
3.0 伪元素选择器(重点)
伪元素选择器可以帮助我们利用CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构。
- ::before 在元素内部的 前面 插入内容
- ::after 在元素内部的 后面 插入内容
注意:
- before 和 after 创建一个元素,但是属于 行内元素(无法设置宽、高度)
- 新创建的这个元素在文档树中是找不到的,所以我们称为伪元素
- 语法: element::before { }
- before 和 after 必须有 content 属性
- before 在父元素内容的前面创建元素,after 在父元素内容的后面插入元素
- 伪元素选择器和标签选择器一样,权重为 1
p::before {
position: absolute;
right: 20px;
top: 10px;
content: '';
font-size: 20px;
}
清除浮动介绍 一
.clearfix:after {
content: ""; 伪元素必须写的属性
display: block; 浮动插入的元素必须是块级
height: 0; 不要看到这个元素
clear: both; 核心代码 清除浮动
visibility: hidden; 元素隐藏 但是占位置
}
二
.clearfix:before,.clearfix:after {
content:"";
display:table; 转换为 块级元素 并且 一行显示
}
.clearfix:after {
clear:both;
}
--------------------- CSS3 盒子模型 ----------------------
CSS3 中可以通过 box-sizing 来指定盒模型,有2个值:即可指定为 content-box、border-box,这样我们计算盒子大小的方式就发生了改变。
可以分成两种情况:
- box-sizing: content-box 盒子大小为 width + padding + border (以前默认的)
- box-sizing: border-box 盒子大小为 width
如果盒子模型我们改为了box-sizing: border-box , 那padding和border就不会撑大盒子了(前提padding和border不会超过width宽度)
----------- CSS3 其他特性(滤镜、函数、过渡) --------------
1.0 CSS3滤镜 filter:
- filter CSS属性将模糊或颜色偏移等图形效果应用于元素。
filter: 函数();
例如: filter: blur(5px); blur模糊处理 数值越大越模糊(0 就不模糊了)
/* blur 是一个函数, 小括号数值越大越模糊 */
1.1 CSS3 calc 函数:
calc() 此CSS函数让你在声明CSS属性值时执行一些计算。
width: calc(100% - 80px); (括号里面可以使用 + - * / 来进行计算。)
意思是父盒子 就是100%减去80px
1.2 CSS3 过渡(重点)(过渡的使用口诀: 谁做过渡给谁加)
过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或
JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
过渡动画: 是从一个状态 渐渐的过渡到另外一个状态
可以让我们页面更好看,更动感十足,虽然 低版本浏览器不支持(ie9以下版本) 但是不会影响页面布局。
我们现在经常和 :hover 一起 搭配使用。
transition: 要过渡的属性 花费时间 运动曲线 何时开始
transition: width .5s ease 1s; ( 如果要写多个属性,运用逗号进行分割 )
transition: all 2s;(后面两个可以省略)
- 属性 : 想要变化的 css 属性, 宽度高度 背景颜色 内外边距都可以 。如果想要所有的属性都
变化过渡, 写一个all 就可以。 - 花费时间: 单位是 秒(必须写单位) 比如 0.5s
- 运动曲线: 默认是 ease (可以省略)
- 何时开始 :单位是 秒(必须写单位)可以设置延迟触发时间 默认是 0s (可以省略)