h5c3
HTML5 第一天
一、什么是 HTML5
- HTML5的概念与定义- 定义: - HTML5定义了- HTML标准的最新版本,是对- HTML的第五次重大修改,号称下一代的- HTML
- 两个概念: - 是一个新版本的 - HTML语言,定义了新的标签、特性和属性
- 拥有一个强大的技术集,这些技术集是指: - HTML5、- CSS3、- javascript, 这也是广义上的- HTML5
 
 
- HTML5拓展了哪些内容- 语义化标签 
- 本地存储 
- 兼容特性 
- 2D、- 3D
- 动画、过渡 
- CSS3特性
- 性能与集成 
 
- HTML5的现状- 绝对多数新的属性,都已经被浏览器所支持,最新版本的浏览器已经开始陆续支持最新的特性, - 总的来说: - HTML5已经是大势所趋
二、HTML5 新增标签
- 什么是语义化 
- 新增了那些语义化标签 - header--- 头部标签
- nav--- 导航标签
- article--- 内容标签
- section--- 块级标签
- aside--- 侧边栏标签
- footer--- 尾部标签
 -  
- 使用语义化标签的注意 - 语义化标签主要针对搜索引擎 
- 新标签可以使用一次或者多次 
- 在 - IE9浏览器中,需要把语义化标签都转换为块级元素
- 语义化标签,在移动端支持比较友好, 
- 另外, - HTML5新增的了很多的语义化标签,随着课程深入,还会学习到其他的
 
三、多媒体音频标签
- 多媒体标签有两个,分别是 - 音频 -- - audio
- 视频 -- - video
 
- audio标签说明- 可以在不使用标签的情况下,也能够原生的支持音频格式文件的播放, 
- 但是:播放格式是有限的 
 
- audio 支持的音频格式 - audio 目前支持三种格式 -  
 
- audio 的参数 -  
5、audio 代码演示
<body>
<!-- 注意:在 chrome 浏览器中已经禁用了 autoplay 属性 -->
<!-- <audio src="./media/snow.mp3" controls autoplay></audio> -->
<!--
因为不同浏览器支持不同的格式,所以我们采取的方案是这个音频准备多个文件
-->
<audio controls>
<source src="./media/snow.mp3" type="audio/mpeg" />
</audio>
</body>
四、多媒体视频标签
- video 视频标签 - 目前支持三种格式 
 -  
- 语法格式 - <video src="./media/video.mp4" controls="controls"></video> 
- video 参数 -  
- video 代码演示 - <body> 
 <!-- <video src="./media/video.mp4" controls="controls"></video> -->
 
 <!-- 谷歌浏览器禁用了自动播放功能,如果想自动播放,需要添加 muted 属性 -->
 <video controls="controls" autoplay muted loop poster="./media/pig.jpg">
 <source src="./media/video.mp4" type="video/mp4">
 <source src="./media/video.ogg" type="video/ogg">
 </video>
 </body>
- 多媒体标签总结 - 音频标签与视频标签使用基本一致 
- 多媒体标签在不同浏览器下情况不同,存在兼容性问题 
- 谷歌浏览器把音频和视频标签的自动播放都禁止了 
- 谷歌浏览器中视频添加 muted 标签可以自己播放 
- 注意:重点记住使用方法以及自动播放即可,其他属性可以在使用时查找对应的手册 
 
五、新增 input 标签
六、新增表单属性
七、CSS3 属性选择器(上)
- 什么是 - CSS3- 在 - CSS2的基础上拓展、新增的样式
 
- CSS3发展现状- 移动端支持优于 - PC端
- CSS3目前还草案,在不断改进中
- CSS3相对- H5,应用非常广泛
 
- 属性选择器列表 -  
- 属性选择器代码演示 - button {
 cursor: pointer;
 }
 button[disabled] {
 cursor: default
 }
八、CSS3 属性选择器(下)
- 代码演示 - input[type=search] {
 color: skyblue;
 }
 
 span[class^=black] {
 color: lightgreen;
 }
 
 span[class$=black] {
 color: lightsalmon;
 }
 
 span[class*=black] {
 color: lightseagreen;
 }
九、结构伪类选择器
- 属性列表 
- 代码演示 - ul li:first-child {
 background-color: lightseagreen;
 }
 
 ul li:last-child {
 background-color: lightcoral;
 }
 
 ul li:nth-child(3) {
 background-color: aqua;
 }
十、nth-child 参数详解
- nth-child 详解 - 注意:本质上就是选中第几个子元素 
- n 可以是数字、关键字、公式 
- n 如果是数字,就是选中第几个 
- 常见的关键字有 - even偶数、- odd奇数
- 常见的公式如下(如果 n 是公式,则从 0 开始计算) 
- 但是第 0 个元素或者超出了元素的个数会被忽略 
 -  
- 代码演示 - <style> 
 /* 偶数 */
 ul li:nth-child(even) {
 background-color: aquamarine;
 }
 
 /* 奇数 */
 ul li:nth-child(odd) {
 background-color: blueviolet;
 }
 
 /*n 是公式,从 0 开始计算 */
 ul li:nth-child(n) {
 background-color: lightcoral;
 }
 
 /* 偶数 */
 ul li:nth-child(2n) {
 background-color: lightskyblue;
 }
 
 /* 奇数 */
 ul li:nth-child(2n + 1) {
 background-color: lightsalmon;
 }
 
 /* 选择第 0 5 10 15, 应该怎么选 */
 ul li:nth-child(5n) {
 background-color: orangered;
 }
 
 /* n + 5 就是从第5个开始往后选择 */
 ul li:nth-child(n + 5) {
 background-color: peru;
 }
 
 /* -n + 5 前五个 */
 ul li:nth-child(-n + 5) {
 background-color: tan;
 }
 </style>
十一、nth-child 和 nt-of-type 的区别
- 代码演示 - <style> 
 div :nth-child(1) {
 background-color: lightblue;
 }
 
 div :nth-child(2) {
 background-color: lightpink;
 }
 
 div span:nth-of-type(2) {
 background-color: lightseagreen;
 }
 
 div span:nth-of-type(3) {
 background-color: #fff;
 }
 </style>
- 区别 - nth-child选择父元素里面的第几个子元素,不管是第几个类型
- nt-of-type选择指定类型的元素
 
十二、伪元素选择器
- 伪类选择器 -  
- 伪类选择器注意事项 - before和- after必须有- content属性
- before在内容前面,after 在内容后面
- before和- after创建的是一个元素,但是属于行内元素
- 创建出来的元素在 - Dom中查找不到,所以称为伪元素
- 伪元素和标签选择器一样,权重为 1 
 
- 代码演示 - <style> 
 div {
 width: 100px;
 height: 100px;
 border: 1px solid lightcoral;
 }
 
 div::after,
 div::before {
 width: 20px;
 height: 50px;
 text-align: center;
 display: inline-block;
 }
 div::after {
 content: '德';
 background-color: lightskyblue;
 }
 
 div::before {
 content: '道';
 background-color: mediumaquamarine;
 }
 </style>
十三、伪元素的案例
- 添加字体图标 - p {
 width: 220px;
 height: 22px;
 border: 1px solid lightseagreen;
 margin: 60px;
 position: relative;
 }
 p::after {
 content: '\ea50';
 font-family: 'icomoon';
 position: absolute;
 top: -1px;
 right: 10px;
 }
十四、2D 转换之 translate
- 2D转换- 2D转换是改变标签在二维平面上的位置和形状
- 移动: - translate
- 旋转: - rotate
- 缩放: - scale
 
- translate语法- x 就是 x 轴上水平移动 
- y 就是 y 轴上水平移动 
 - transform: translate(x, y) 
 transform: translateX(n)
 transfrom: translateY(n)
- 重点知识点 - 2D的移动主要是指 水平、垂直方向上的移动
- translate最大的优点就是不影响其他元素的位置
- translate中的100%单位,是相对于本身的宽度和高度来进行计算的
- 行内标签没有效果 
 
- 代码演示 
div {
  background-color: lightseagreen;
  width: 200px;
  height: 100px;
  /* 平移 */
  /* 水平垂直移动 100px */
  /* transform: translate(100px, 100px); */
  /* 水平移动 100px */
  /* transform: translate(100px, 0) */
  /* 垂直移动 100px */
  /* transform: translate(0, 100px) */
  /* 水平移动 100px */
  /* transform: translateX(100px); */
  /* 垂直移动 100px */
  transform: translateY(100px)
}
十五、让一个盒子水平垂直居中
- 看代码 
十六、2D 转换 rotate
- rotate 旋转 - 2D旋转指的是让元素在二维平面内顺时针或者逆时针旋转
 
- rotate语法- /* 单位是:deg */ 
 transform: rotate(度数)
- 重点知识点 - rotate里面跟度数,单位是- deg
- 角度为正时,顺时针,角度为负时,逆时针 
- 默认旋转的中心点是元素的中心点 
 
- 代码演示 
img:hover {
transform: rotate(360deg)
}
HTML5 第二天
一、rotate
2d旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转
使用步骤:
- 给元素添加转换属性 - transform
- 属性值为 - rotate(角度)如- transform:rotate(30deg)顺时针方向旋转30度
div{
      transform: rotate(0deg);
}
二、三角
- 代码演示 
二、设置元素旋转中心点(transform-origin)
- transform-origin基础语法- transform-origin: x y; 
- 重要知识点 - 注意后面的参数 x 和 y 用空格隔开 
- x y 默认旋转的中心点是元素的中心 (50% 50%),等价于 - center- center
- 还可以给 x y 设置像素或者方位名词( - top、- bottom、- left、- right、- center)
 
三、旋转中心案例
- 代码演示 
四、2D 转换之 scale
- scale的作用- 用来控制元素的放大与缩小 
 
- 语法 - transform: scale(x, y) 
- 知识要点 - 注意,x 与 y 之间使用逗号进行分隔 
- transform: scale(1, 1): 宽高都放大一倍,相当于没有放大
- transform: scale(2, 2): 宽和高都放大了二倍
- transform: scale(2): 如果只写了一个参数,第二个参数就和第一个参数一致
- transform:scale(0.5, 0.5): 缩小
- scale最大的优势:可以设置转换中心点缩放,默认以中心点缩放,而且不影响其他盒子
 
- 代码演示 - div:hover {
 /* 注意,数字是倍数的含义,所以不需要加单位 */
 /* transform: scale(2, 2) */
 
 /* 实现等比缩放,同时修改宽与高 */
 /* transform: scale(2) */
 
 /* 小于 1 就等于缩放*/
 transform: scale(0.5, 0.5)
 }
五、图片放大案例
- 代码演示 
六、分页按钮案例
- 代码演示 
七、 2D 转换综合写法以及顺序问题
- 知识要点 - 同时使用多个转换,其格式为 - transform: translate() rotate() scale()
- 顺序会影响到转换的效果(先旋转会改变坐标轴方向) 
- 但我们同时有位置或者其他属性的时候,要将位移放到最前面 
 
- 代码演示 - div:hover {
 transform: translate(200px, 0) rotate(360deg) scale(1.2)
 }
八、 动画(animation)
- 什么是动画 - 动画是 - CSS3中最具颠覆性的特征之一,可通过设置多个节点来精确的控制一个或者一组动画,从而实现复杂的动画效果
 
- 动画的基本使用 - 先定义动画 
- 在调用定义好的动画 
 
- 语法格式(定义动画) - @keyframes 动画名称 {
 0% {
 width: 100px;
 }
 100% {
 width: 200px
 }
 }
- 语法格式(使用动画) - div {
 /* 调用动画 */
 animation-name: 动画名称;
 /* 持续时间 */
 animation-duration: 持续时间;
 }
- 动画序列 - 0% 是动画的开始,100 % 是动画的完成,这样的规则就是动画序列 
- 在 @keyframs 中规定某项 CSS 样式,就由创建当前样式逐渐改为新样式的动画效果 
- 动画是使元素从一个样式逐渐变化为另一个样式的效果,可以改变任意多的样式任意多的次数 
- 用百分比来规定变化发生的时间,或用 - from和- to,等同于 0% 和 100%
 
- 代码演示 - <style> 
 div {
 width: 100px;
 height: 100px;
 background-color: aquamarine;
 animation-name: move;
 animation-duration: 0.5s;
 }
 
 @keyframes move{
 0% {
 transform: translate(0px)
 }
 100% {
 transform: translate(500px, 0)
 }
 }
 </style>
九、动画序列
- 代码演示 
十、动画常见属性
- 常见的属性 -  
- 代码演示 - div {
 width: 100px;
 height: 100px;
 background-color: aquamarine;
 /* 动画名称 */
 animation-name: move;
 /* 动画花费时长 */
 animation-duration: 2s;
 /* 动画速度曲线 */
 animation-timing-function: ease-in-out;
 /* 动画等待多长时间执行 */
 animation-delay: 2s;
 /* 规定动画播放次数 infinite: 无限循环 */
 animation-iteration-count: infinite;
 /* 是否逆行播放 */
 animation-direction: alternate;
 /* 动画结束之后的状态 */
 animation-fill-mode: forwards;
 }
 
 div:hover {
 /* 规定动画是否暂停或者播放 */
 animation-play-state: paused;
 }
十一、 动画简写方式
- 动画简写方式 - /* animation: 动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 起始与结束状态 */ 
 animation: name duration timing-function delay iteration-count direction fill-mode
- 知识要点 - 简写属性里面不包含 - animation-paly-state
- 暂停动画 - animation-paly-state: paused; 经常和鼠标经过等其他配合使用
- 要想动画走回来,而不是直接调回来: - animation-direction: alternate
- 盒子动画结束后,停在结束位置: - animation-fill-mode: forwards
 
- 代码演示 - animation: move 2s linear 1s infinite alternate forwards; 
十二、速度曲线细节
- 速度曲线细节 - animation-timing-function: 规定动画的速度曲线,默认是- ease
 
- 代码演示 - div {
 width: 0px;
 height: 50px;
 line-height: 50px;
 white-space: nowrap;
 overflow: hidden;
 background-color: aquamarine;
 animation: move 4s steps(24) forwards;
 }
 
 @keyframes move {
 0% {
 width: 0px;
 }
 
 100% {
 width: 480px;
 }
 }
十三、奔跑的熊大
- 代码演示 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
body {
background-color: #ccc;
}
div {
position: absolute;
width: 200px;
height: 100px;
background: url(media/bear.png) no-repeat;
/* 我们元素可以添加多个动画, 用逗号分隔 */
animation: bear .4s steps(8) infinite, move 3s forwards;
}
@keyframes bear {
0% {
background-position: 0 0;
}
100% {
background-position: -1600px 0;
}
}
@keyframes move {
0% {
left: 0;
}
100% {
left: 50%;
/* margin-left: -100px; */
transform: translateX(-50%);
}
}
</style>
</head>
<body>
<div></div>
</body>
</html>
cHTML5 第三天
一、 认识 3D 转换
- 3D的特点- 近大远小 
- 物体和面遮挡不可见 
 
- 三维坐标系 - x 轴:水平向右 -- 注意:x 轴右边是正值,左边是负值 
- y 轴:垂直向下 -- 注意:y 轴下面是正值,上面是负值 
- z 轴:垂直屏幕 -- 注意:往外边的是正值,往里面的是负值 
 
二、3D 转换
- 3D转换知识要点- 3D位移:- translate3d(x, y, z)
- 3D旋转:- rotate3d(x, y, z)
- 透视: - perspctive
- 3D呈现- transfrom-style
 
- 3D移动- translate3d- 3D移动就是在- 2D移动的基础上多加了一个可以移动的方向,就是 z 轴方向
- transform: translateX(100px):仅仅是在 x 轴上移动
- transform: translateY(100px):仅仅是在 y 轴上移动
- transform: translateZ(100px):仅仅是在 z 轴上移动
- transform: translate3d(x, y, z):其中x、y、z 分别指要移动的轴的方向的距离
- 注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充 
 
- 语法 - transform: translate3d(x, y, z) 
- 代码演示 - transform: translate3d(100px, 100px, 100px) 
 /* 注意:x, y, z 对应的值不能省略,不需要填写用 0 进行填充 */
 transform: translate3d(100px, 100px, 0)
三、透视 perspective
- 知识点讲解 - 如果想要网页产生 - 3D效果需要透视(理解成- 3D物体投影的- 2D平面上)
- 实际上模仿人类的视觉位置,可视为安排一直眼睛去看 
- 透视也称为视距,所谓的视距就是人的眼睛到屏幕的距离 
- 距离视觉点越近的在电脑平面成像越大,越远成像越小 
- 透视的单位是像素 
 
- 知识要点 - 透视需要写在被视察元素的父盒子上面 
- 注意下方图片 - d:就是视距,视距就是指人的眼睛到屏幕的距离 
- z:就是 z 轴,z 轴越大(正值),我们看到的物体就越大 
 
 -  
- 代码演示 - body {
 perspective: 1000px;
 }
四、 translateZ
- translateZ与- perspecitve的区别- perspecitve给父级进行设置,- translateZ给 子元素进行设置不同的大小
 
五、3D 旋转rotateX
3D 旋转指可以让元素在三维平面内沿着 x 轴、y 轴、z 轴 或者自定义轴进行旋转
- 语法 - transform: rotateX(45deg)-- 沿着 x 轴正方向旋转 45 度
- transform: rotateY(45deg)-- 沿着 y 轴正方向旋转 45 度
- transform: rotateZ(45deg)-- 沿着 z 轴正方向旋转 45 度
- transform: rotate3d(x, y, z, 45deg)-- 沿着自定义轴旋转 45 deg 为角度
 
- 代码案例 - div {
 perspective: 300px;
 }
 
 img {
 display: block;
 margin: 100px auto;
 transition: all 1s;
 }
 
 img:hover {
 transform: rotateX(-45deg)
 }
- 左手准则 - 左手的手拇指指向 x 轴的正方向 
- 其余手指的弯曲方向就是该元素沿着 x 轴旋转的方向 
 
六、3D 旋转 rotateY
- 代码演示 - div {
 perspective: 500px;
 }
 
 img {
 display: block;
 margin: 100px auto;
 transition: all 1s;
 }
 
 img:hover {
 transform: rotateY(180deg)
 }
- 左手准则 - 左手的拇指指向 y 轴的正方向 
- 其余的手指弯曲方向就是该元素沿着 y 轴旋转的方向(正值) -  
 
七、 3D 旋转 rotateZ
- 代码演示 - div {
 perspective: 500px;
 }
 
 img {
 display: block;
 margin: 100px auto;
 transition: all 1s;
 }
 
 img:hover {
 transform: rotateZ(180deg)
 }
- rotate3d- transform: rotate3d(x, y, z, deg)-- 沿着自定义轴旋转 deg 为角度
- x, y, z 表示旋转轴的矢量,是标识你是否希望沿着该轴进行旋转,最后一个标识旋转的角度 - transform: rotate3d(1, 1, 0, 180deg)-- 沿着对角线旋转 45deg
- transform: rotate3d(1, 0, 0, 180deg)-- 沿着 x 轴旋转 45deg
 
 
- 代码演示 - div {
 perspective: 500px;
 }
 
 img {
 display: block;
 margin: 100px auto;
 transition: all 1s;
 }
 
 img:hover {
 transform: rotate3d(1, 1, 0, 180deg)
 }- 八、- 3D呈现- transform-style- transform-style- ☆☆☆☆☆ 
- 控制子元素是否开启三维立体环境 
- transform-style: flat代表子元素不开启- 3D立体空间,默认的
- transform-style: preserve-3d子元素开启立体空间
- 代码写给父级,但是影响的是子盒子 
 
- 代码演示 
 
h5c3的更多相关文章
- H5C3动画
		1 渐变 /* 渐变:不同颜色之间的柔和过渡 线性渐变:沿着某条直线发生渐变效果 注意:渐变准备来说是一张背景图 语法:linear-gradient */ background-image: lin ... 
- 学习H5C3
		不一样的老师,不一样风格,刚开始我们都是非常热情,知道这是非常重要的,我需要坚持,加油!!! 
- H5C3综合案例
		案例:实现步骤 1. 搭建HTML结构 <section> <div></div> <div></div> <div></ ... 
- 不一样的纯H5C3动画爱心
		最近抖音很火的让你会计算机的朋友给你做个爱心突然火了,我也不出意外的收到了朋友的邀请,自己做肯定太麻烦了于是乎百度第一步,惊呆了!网上全都是一个爱心,变着法的火焰爱心,换汤不换药,那我们肯定是要整点不 ... 
- CSS3——3D旋转图(跑马灯效果图)
		CSS3新增了很多新的属性,可以用很少的代码实现炫酷的动画效果,但由于兼容性各浏览器的能力存在不足,有特别需求的网站就呵呵啦.H5C3已是大势所趋了,之前看过一个新闻,Chrome将在年底全面转向H5 ... 
- Html5+Css3 Banner Animation 多方位移动特效
		背景:朋友问我小米官网的mi4的特效会做吗,可能新接的一个小网站需要用到.一直有打算研究H5C3的一些效果,趁此机会,赶紧学习一下! 效果:如图 素材 HTML: <div class=&quo ... 
- web前端学习路线和步骤
		H5+全栈工程师 (学习下列技术可以加QQ: 1416 7596 61)第一阶段:初级入门阶段基本功 1.HTML入门 Windows概述.浏览器概述.HTML简介.HTML标签详解.前端开发工具概 ... 
- H5 Day2 练习
		<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- Selenium2学习(四)-- xpath定位
		前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ... 
随机推荐
- Spring Security和Swagger2集成报错
			出现问题的项目算是一个新项目,但基本的脚手架代码是从另一个项目里迁过来的,原项目并没有报错,只有新项目才报异常.看报错内容,判断发生冲突的主要是spring-boot-starter-security ... 
- 4.深入k8s:容器持久化存储
			从一个例子入手PV.PVC Kubernetes 项目引入了一组叫作 Persistent Volume Claim(PVC)和 Persistent Volume(PV)的 API 对象用于管理存储 ... 
- 对Word2Vec的理解
			1. word embedding 在NLP领域,首先要把文字或者语言转化为计算机能处理的形式.一般来说计算机只能处理数值型的数据,所以,在NLP的开始,有一个很重要的工作,就是将文字转化为数字,把这 ... 
- 017_go语言中的指针
			代码演示 package main import "fmt" func zeroval(ival int) { ival = 0 } func zeroptr(iptr *int) ... 
- Python使用Tornado+Redis维护ADSL拨号服务器代理池
			们尝试维护过一个免费的代理池,但是代理池效果用过就知道了,毕竟里面有大量免费代理,虽然这些代理是可用的,但是既然我们能刷到这个免费代理,别人也能呀,所以就导致这个代理同时被很多人使用来抓取网站,所以当 ... 
- 一篇夯实一个知识点系列--python实现十大排序算法
			写在前面 排序是查找是算法中最重要的两个概念,我们大多数情况下都在进行查找和排序.科学家们穷尽努力,想使得排序和查找能够更加快速.本篇文章用Python实现十大排序算法. 干货儿 排序算法从不同维度可 ... 
- C++ 的字符串反转
			C++ 的字符串反转 方法一: 使用 algorithm 中的 reverse 函数: // reverse 函数的定义(在 std 名称空间中) template<class BidirIt& ... 
- CSDN新版Markdown编辑器(Alpha 2.0版)
			Markdown编辑器 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建 ... 
- C#LeetCode刷题之#278-第一个错误的版本(First Bad Version)
			问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3985 访问. 你是产品经理,目前正在带领一个团队开发新的产品.不 ... 
- 题解 UVA10457
			题目大意:另s = 路径上的最大边权减最小边权,求u到v上的一条路径,使其s最小,输出这个s. 很容易想到枚举最小边然后跑最小瓶颈路. so,如何跑最小瓶颈路? 利用Kruskal,因为树上两点路径唯 ... 
