IE10 下CSS3选择器及动画(animation)效果实例教程

        各位朋友大家好,今天笔者继续为大家分享IE10 CSS3样式表系列教程,继上文:详解IE10 CSS3 3D变换(3D transfrom)及实例教程 

(http://blog.csdn.net/liwei3gjob/article/details/8865874)CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,所以笔者从CSS3选择器、CSS动画(Animations)效果基础开始为大家进行归纳总结,并附上实例源代码。

        什么是选择器?

        CSS是一种用于屏幕上渲染htmlxml等一种语言,CSS主要是在相应的元素中应用样式,来渲染相对应用的元素,那么这样我们选择相应的元素就很重要了,如何选择对应的元素,此时就需要我们所说的选择器。

        CSS选择器是个难以置信地强大的工具:它们允许我们在标签中指定特定的HTML元素而不必使用多余的 class、 ID JavaScripts。而且它们中的大部分并不是CSS3中新添加的,而是没有被得到应有的广泛应用。如果你在尝试实现一个干净的、轻量级的标签以及 结构与表现更好的分离,高级选择器是非常有用的。它们可以减少在标签中的classID的数量并让设计师更方便的维护样式表。

         选择器的分类:

选择器主要是用来确定html的树形结构中的DOM元素节点。我把CSS选择器分开成三部分

         第一部分是我们常用的部分,我把他叫做基本选择器;

         第二部分我把他称作是属性选择器;

         第三部分我把他称作伪类选择器,如下图:

IE10 下CSS3选择器及动画(animation)效果实例教程_第1张图片

         IE浏览器各历史版本和其他浏览器对CSS3选择器兼容性对比

 

IE10 下CSS3选择器及动画(animation)效果实例教程_第2张图片

IE10 下CSS3选择器及动画(animation)效果实例教程_第3张图片

IE10 下CSS3选择器及动画(animation)效果实例教程_第4张图片

            综合实例:

<style type="text/css">
li{padding:10px;}
input[name^="news"]{
  border:1px solid #F60;
}
ol li:nth-child(3n+1){
  background:#EEE;
}
ol li:nth-child(3n+2){
  background:#666;
}
input:disabled{
  background:#EEE;
}
div:target{
  background:#F60;
}
ol~div{
  margin:5px 0;
  background:#EEE;
  padding:10px;
}
div:not(#note){
  margin:10px 0;
  border:1px solid #CCC;
  padding:10px;
  border-radius:5px;
}
</style>
<input name="newsletter" value="name=newsletter" />
<input name="milkman" disabled="disabled" value="name=milkman"/>
<input name="newsboy" value="name=newsboy" />
<div id="webt">前端工程师要学习的内容主要有:</div>
<ol>
  <li>JavaScript</li>
  <li>CSS</li>
  <li>HTML</li>
  <li>Ajax</li>
  <li>JSON</li>
  <li>XML</li>
  <li>jQuery</li>
</ol>
<div id="note">ol li:nth-child(3n+1)表示匹配索引(从1开始)为3n+1的li元素,n可取0、1、2、3...等。E:nth-child(n)中n还为odd(奇数)、even(偶数)</div>


        IE10 CSS3兼容情况

        微软公开说明IE10预览版已经支持CSS3属性 Transitions, Transforms 和 Animations,你可以直接写transitions,而不是加个恶心的前缀-ms-,这是一个大的进步,也将激发更多浏览器厂商尽快普及支持更多CSS3。你一定认为这是微软给前端开发者的一个惊喜,的确,这是微软少有的积极,应该支持。相信不少同学已经使用过了这几个CSS3属性,Transitions是设定一个时间,然后可以进行一些平滑的动画操作;Transforms是变形转换,这个也非常多用;Animations是动画,也是下面我们中间分析的内容。

IE 10提供了足够丰富的CSS支持,在许多新的CSS工具中都提供了动画、过渡和转换。IE 10还对下一代布局工具提供了实验性支持,例如CSS网格布局、CSS多列布局和CSS区域。

       

IE10 下CSS3选择器及动画(animation)效果实例教程_第5张图片

        IE10 CSS3动画(Animations)特效

        随着CSS3越来越热,CSS3动画也逐渐受到大家的关注。

CSS3里的动画特效。不用任何的Javascript,只用纯CSS,你就能实现令人相当吃惊的动画效果,甚至是3D动画效果。下面跟随笔者一起使用IE10 观看一个经典的CSS3动画效果(http://andrew-hoyer.com/experiments/walking/)

       IE10 下CSS3选择器及动画(animation)效果实例教程_第6张图片

CSS3演示人行走的动画

         CSS中的动画分为三种:

          变形(transformation)、变换(transition)和动画(animation)

          rotate      传递一个度数值来转动一个对象。

          scale       Scale是一个缩放功能,可以让任一元素变的更大。

          translate  基于X坐标重新定位元素

          skew        skew就是要将对象倾斜,参数是度数

          matrix

          transform支持矩阵变换,就是基于X坐标重新定位元素

     

IE10 下CSS3选择器及动画(animation)效果实例教程_第7张图片

 

1变形(transformation)实例:

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8" />
<title>CSS3动画</title>
<meta name="author" content="" />
<meta name="copyright" content="" />
<style>
body{ font-family:"微软雅黑"; font-size:12px;}
h1{font-size:16px;}
.test{overflow:hidden;width:100%;margin:0;padding:0;list-style:none;}
.test li{float:left;width:200px;height:30px;margin:5px 5px; line-height:30px; border:1px solid #ddd;background-color:#eee;text-align:center;-moz-transition:width .2s ease-in;-webkit-transition:width .2s ease-in;-o-transition:width .2s ease-in;transition:width .2s ease-in;}
.test li:nth-child(1):hover{width:250px;}
.test li:nth-child(2):hover{width:300px;}
.test li:nth-child(3):hover{width:350px;}
.test li:nth-child(4):hover{width:400px;}
.test li:nth-child(5):hover{width:450px;}

button {cursor:pointer;outline:none;blr:expression(this.hideFocus=true);border-style: solid;border-width: 1px 1px 1px 0;border-color: #e2e2e2;height: 26px;line-height: 26px; float:left}
input {vertical-align:middle;border-style: solid;border-width: 1px;border-color: #BCBCBC #E7E7E7 #E7E7E7 #BCBCBC;height: 24px;line-height: 24px;padding: 0 3px; float: left;}
.forma{ margin:5px 5px;}
.forma input{ width:125px;-moz-transition:width .2s ease-in;-webkit-transition:width .2s ease-in;-o-transition:width .2s ease-in;transition:width .2s ease-in;}
.forma input:hover{ width:250px;}
.forma button{ width:60px;-moz-transition:.2s;-webkit-transition:.2s;-o-transition:.2s;transition:.2s; background-color:#ffffff;}
.forma button:hover{ background-color:#ececec}
</style>
</head>
<body>
<h1>请将鼠标移动到下面的矩形上:</h1>
<ul class="test">
	<li>宽度过渡</li>
	<li>宽度过渡</li>
	<li>宽度过渡</li>
	<li>宽度过渡</li>
	<li>宽度过渡</li>
</ul>
<form class="forma">
	<input type="text"/>
	<button>搜索</button>
</form>
</body>
</html>


IE10 下CSS3选择器及动画(animation)效果实例教程_第8张图片

2transition(转换)

一个涉及到CSS属性的基本的转换就是:定义和移动一个元素从它的静止状态到它的hover或者激活状态(比如,背景变化)

转换可以和变形同时使用(以及引发诸如:hover :focus事件)以创建一些动画。

transition-property 指定转换的CSS属性名称        比如:将转换应用于background-color属性。

transition-duration 定义转换花费的时间

transition-timing-function 可以理解为过度效果。

transition-delay 转换延迟的时间。

transform属性一样酷,但是目前只有WebKit浏览器支持

Opera 10.5 pre版本也可以通过添加-o-前缀来支持。

-moz-transition已经在Firefox 中可用。

你也可以添加-moz-transition到你的CSS中以实现将来的增强。甚至可以添加一个不用私有前缀的属性,以防万一。

可转换属性:http://www.w3.org/TR/css3-transitions/

变换(transition)实例:

<!DOCTYPE html>
  <html>
      <head>
          <meta charset="utf-8" />
          <title>IE10 下CSS3选择器及动画(animation)效果实例教程-liwei3gjob</title>
          <style>
          div { 
             background-color: red;
          }
         @-webkit-keyframes mycolor {
             0% {
                 background-color: red;
             }
             40% {
                 background-color: darkblue;
            }
             70% {
                 background-color: yellow;
             }
             100% {
                 background-color: darkblue;
             }
         }
         div:hover {
             -webkit-animation-name: mycolor;
             -webkit-animation-duration: 5s;
             -webkit-animation-timing-function: linear;
         }
         </style>
     </head>
     <body>
         <div>IE10 下CSS3选择器及动画(animation)效果实例教程-liwei3gjob</div>
     </body>
 </html>

效果

IE10 下CSS3选择器及动画(animation)效果实例教程_第9张图片

3Animation(动画)

动画是CSS 3最有用的地方。你可以将我们在上面讨论的所有的元素与动画属性  比如animation-durationanimation-name animation-timing-function 整合以创建像Flash动画一样的效果——纯CSS

animation-name 动画的名称。

animation-duration 定义动画播放一次需要的时间。默认为0

animation-timing-function 定义动画播放的方式,参数设置类似transition-timing-function

animation-delay 定义动画开始的时间

animation-iteration-count 定义循环的次数,infinite即为无限次。默认是1

-webkit-animation-direction 动画播放的方向,两个值,默认为normal,向前播放。另一个值是alternate,则第偶数次向前播放,第奇数次向反方向播放。

案例源码:

<!DOCTYPE html>
  <html>
      <head>
         <meta charset="utf-8" />
          <title>IE10 下CSS3选择器及动画(animation)效果实例教程-blog.csdn.net/liwei3gjob</title>
         <style>
          div { 
              top: 100px;
              position: absolute;
             width: 500px;
             background-color: yellow;
         }
         @-webkit-keyframes 'wobble' {
             0% {
                 background-color: red;
                 -webkit-transform: rotate(0deg);
             }
             40% {
                 background-color: darkblue;
                 -webkit-transform: rotate(30deg);
             }
             70% {
                 background-color: yellow;
                 -webkit-transform: rotate(-30deg);
             }
             100% {
                 background-color: red;
                 -webkit-transform: rotate(0deg);
             }
         }
         div:hover {
             -webkit-animation-name: wobble;
             -webkit-animation-duration: 5s;
             -webkit-animation-timing-function: linear;
         }
         </style>
     </head>
     <body>
39         <div>IE10 下CSS3选择器及动画(animation)效果实例教程-blog.csdn.net/liwei3gjob</div>
40     </body>
41 </html>

效果如下:

IE10 下CSS3选择器及动画(animation)效果实例教程_第10张图片

总结:现在,让所有浏览器支持这些很棒的属性可能需要一个很长的过程。不用等待那一天的到来,我们可以先使用一些严谨的渐进增强以及Javascript来增强我们的网站和应用。

你可能感兴趣的:(动画,html5,css3,IE10,animations)