1、HTML5的基本介绍


HTML4包含下面4部分:


1)html标签:页面的基本结构


2)css:用来控制页面上的元素的显示


3)javascript:主要是用来控制页面上的逻辑


HTML5并不仅仅只是作为HTML标记语言的一个最新版本,更重要的是它制定了WEB应用开发的一系列标准,成为第一个将web作为应用开发平台的HTML语言。


HTML5定义了一系列新元素,如新语义标签、智能表单、多媒体标签等;还提供了一些javascript API,如地理定位、重力感应、硬件访问等,可以在浏览器内实现原生应用,甚至结合Canvas开发网页版游戏。


H5范称


HTML5标签+css3+JS(js的API)



2、语义标签


nav----导航


header----页眉


footer----页脚


section----区块


acticle----文章


process----进度条


使用这些语义标签,更有利于搜索引擎或者辅助设备来理解HTML页面内容。



3、新增标签(还有很多)


几个具有颠覆性的标签:这两个标签可以在网页中播放视频


video:用来控制视频的播放


audio:用来控制音频的播放



4、新增js API


1)换肤:在用户的客户端去存一些东西,早之前我们存储数据都是用cookie;


html5新增了两个对象:


sessionStorage:保存在浏览器内存中


localStorage:永久保存


小案例1:换肤,使用localStorage保存数据


<!DOCTYPE html> 

 

  <html> 

 

  <head> 

 

  <meta charset="UTF-8"> 

 

  <title>换肤</title> 

 

  </head> 

 

  <body> 

 

  <div style="float: right;"> 

 

  <select> 

 

  <option value="none">换肤</option> 

 

  <option value="yellow">黄色</option> 

 

  <option value="green">绿色</option> 

 

  <option value="blue">蓝色</option> 

 

  <option value="pink">粉色</option> 

 

  </select> 

 

  </div> 

 
 

 

  <script type="text/javascript" src="js/jquery.js" ></script> 

 

  <script type="text/javascript"> 

 
 

 
//每次打开页面时,先去读取localStorage中的color,并且设置背景
 
var color = window.localStorage.getItem("color");
 
if(color){
 
document.body.style.background = color;
 
}
 
 

 

  document.querySelector("select").onchange = function(){ 

 

  var color = this.value; 

 

  document.body.style.background = color; 

 
 

 
//把这个数据保存到localStorage中
 
//以键值对的方式保存
 
window.localStorage.setItem("color",color);
 

  }; 

 

  </script> 

 

  </body> 

 

  </html>


总结:百度搜索记住用户的搜索关键字也是这样实现的。



2)定位:JS提供API可以获取用户的经纬度,早期只能通过ip进行定位。


现在使用js获取用户经纬度,然后调用第三方的接口,比如百度地图、高德地图;


基于lbs的服务:Location base service。


使用pc去获取经纬度存在一些问题。


小案例2:百度地图


首先要进入百度地图的api官网


1:获取用户的经纬度


2:调用百度地图,把我们的经纬度传过去


3:渲染



3)CSS3动画:CSS库,别人写好的一系列CSS库,比如animate.css


animate.css:一款强大的CSS动画库;预设了引起弹跳(bounce)、摇摆(swing)、颤抖(wobble)、抖动(shake)、闪烁(flash)、翻转(flip)、旋转(rotate)、淡入淡出(fale)、滑动(sliding)、光速(lightspeed)、缩放变焦(zoom)、翻滚(roll)等多达70中动画特效。



小案例3:支付宝咻一咻特效


<!DOCTYPE html> 

 

  <html> 

 

  <head> 

 

  <meta charset="UTF-8"> 

 

  <title>支付宝特效</title> 

 

  <style type="text/css"> 

 

  html,body{ 

 

  height: 100%; 

 

  } 

 

  /*使用c3的伸缩布局*/ 

 

  body{ 

 

  display: flex; 

 

  /*调整主轴和侧轴的对齐方式*/ 

 

  justify-content: center; 

 

  align-items: center; 

 

  background: #1e577e; 

 
 

 

  overflow: hidden; 

 

  } 

 
 

 

  .center{ 

 
 

 

  cursor: pointer; 

 

  } 

 

  .center img{ 

 

  width: 128px; 

 

  height: 128px; 

 

  } 

 

  .main{ 

 

  width: 128px; 

 

  height: 128px; 

 

  position: relative; 

 

  } 

 
 

 

  .main>div{ 

 

  width: 128px; 

 

  height: 128px; 

 

  position: absolute; 

 

  left: 0; 

 

  top: 0px; 

 

  } 

 
 

 

  .circle{ 

 

  border: 1px solid #ccc; 

 

  border-radius: 50%; 

 

  opacity: 0; 

 

  } 

 
 

 

  .circle.go{ 

 

  /*animation: change 1s linear infinite;*/ 

 

  animation-name: change; 

 

  animation-duration: 3s; 

 
 

 

  /*执行动画的速度*/ 

 

  animation-timing-function: linear; 

 
 

 

  /*动画执行次数*/ 

 

  animation-iteration-count: infinite; 

 
 

 

  } 

 
 

 

  @keyframes change{ 

 

  0%{ 

 

  transform: scale(1); 

 

  opacity: 0.4; 

 

  } 

 

  100%{ 

 

  transform: scale(4); 

 

  opacity: 0; 

 

  } 

 

  } 

 

  </style> 

 

  </head> 

 

  <body> 

 

  <div class="main"> 

 

  <div class="circle"> 

 
 

 

  </div> 

 

  <div class="circle"> 

 
 

 

  </div> 

 

  <div class="circle"> 

 
 

 

  </div> 

 

  <div class="circle"> 

 
 

 

  </div> 

 

  <div class="circle"> 

 
 

 

  </div> 

 

  <div class="center"> 

 

  <img src="img/zhipay.png"/> 

 

  </div> 

 

  </div> 

 

  <audio src="music/6944.wav"></audio> 

 

  <script type="text/javascript"> 

 

  document.querySelector(".center").οnclick=function(){ 

 

  var circles = document.querySelectorAll(".circle"); 

 

  //js操作必须一个一个便利,然后单独操作 

 

  //如果使用jquery则可以批量操作 

 

  for(var i=0;i<circles.length;i++){ 

 

  //把动画效果加上去,实现方式:定义一个类名 

 

  circles[i].style.animationDelay = i*0.6+"s"; 

 

  circles[i].classList.add("go"); 

 

  } 

 
 

 

  //播放一段音频 

 

  var audio = document.querySelector("audio"); 

 

  //只播放一次 

 

  audio.loop = "loop"; 

 

  audio.play(); 

 

  }; 

 

  </script> 

 

  </body> 

 

  </html> 

 
 
 
 

  小案例4:宇宙 

 

  <!DOCTYPE html> 

 

  <html> 

 

  <head> 

 

  <meta charset="UTF-8"> 

 

  <title></title> 

 
 

 

  <style type="text/css"> 

 

  body{ 

 

  margin: 0px; 

 

  padding: 0px; 

 

  background: #800080; 

 
 

 

  overflow: hidden; 

 

  } 

 
 

 

  ul{ 

 

  width: 600px; 

 

  height: 600px; 

 

  list-style: none; 

 

  margin: 40px auto; 

 

  position: relative; 

 

  } 

 
 

 

  ul li{ 

 

  border: 1px solid green; 

 

  border-radius: 50%; 

 

  position: absolute; 

 

  top: 50%; 

 

  left: 50%; 

 

  transform: translate(-50% ,-50%); 

 
 

 

  /*animation: change 3s linear infinite;*/ 

 

  animation: change; 

 

  animation-timing-function: linear; 

 

  animation-iteration-count: infinite; 

 

  } 

 
 

 

  li:nth-of-type(1){ 

 

  width: 60px; 

 

  height: 60px; 

 

  border: none; 

 

  background: yellow; 

 

  /*设置核子阴影*/ 

 

  box-shadow: 0px 0px 50px #c90; 

 

  } 

 
 

 

  li span{ 

 

  position: absolute; 

 

  width: 12px; 

 

  height: 12px; 

 
 

 

  left: 50%; 

 

  top: -6px; 

 

  background: red; 

 

  border-radius: 50%; 

 

  } 

 
 

 

  li:nth-of-type(2){ 

 

  width: 120px; 

 

  height: 120px; 

 
 

 

  animation-duration: 3.2s; 

 

  } 

 
 

 

  li:nth-of-type(3){ 

 

  width: 180px; 

 

  height: 180px; 

 

  animation-duration: 4.2s; 

 

  } 

 
 

 

  li:nth-of-type(4){ 

 

  width: 240px; 

 

  height: 240px; 

 

  animation-duration: 5.2s; 

 

  } 

 
 

 

  li:nth-of-type(5){ 

 

  width: 300px; 

 

  height: 300px; 

 

  animation-duration: 7.2s; 

 

  } 

 
 

 

  li:nth-of-type(6){ 

 

  width: 360px; 

 

  height: 360px; 

 

  animation-duration: 9.2s; 

 

  } 

 
 

 

  li:nth-of-type(7){ 

 

  width: 420px; 

 

  height: 420px; 

 

  animation-duration: 11.2s; 

 

  } 

 
 

 

  li:nth-of-type(8){ 

 

  width: 480px; 

 

  height: 480px; 

 

  animation-duration: 12.2s; 

 

  } 

 
 

 

  li:nth-of-type(9){ 

 

  width: 540px; 

 

  height: 540px; 

 

  animation-duration: 16.2s; 

 

  } 

 
 

 

  li:nth-of-type(10){ 

 

  width: 600px; 

 

  height: 600px; 

 

  animation-duration: 18.2s; 

 

  } 

 
 

 

  @keyframes change{ 

 

  0%{ 

 

  transform: translate(-50%, -50%) rotate(0deg); 

 

  } 

 

  100%{ 

 

  transform: translate(-50%, -50%) rotate(360deg); 

 

  } 

 

  } 

 

  </style> 

 

  </head> 

 

  <body> 

 

  <ul> 

 

  <li></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  <li><span></span></li> 

 

  </ul> 

 
 

 

  <script type="text/javascript"> 

 
 

 

  </script> 

 

  </body> 

 

  </html>