十天精通CSS3学习笔记 part4

CSS3中的变形与动画(下)

CSS3 Keyframes介绍

Keyframes 被称为关键帧,其类似于Flash中的关键帧。在CSS3中其主要以“@keyframes”开头,后面紧跟着是动画名称加上一对花括号“{…}”,括号中就是一些不同时间段样式规则。

@keyframes changecolor{
  0%{
   background: red;
  }
  100%{
    background: green;
  }
}

在一个“@keyframes”中的样式规则可以由多个百分比构成的,如在“0%”到“100%”之间创建更多个百分比,分别给每个百分比中给需要有动画效果的元素加上不同的样式,从而达到一种在不断变化的效果。

经验与技巧:在@keyframes中定义动画名称时,其中0%和100%还可以使用关键词fromto来代表,其中0%对应的是from,100%对应的是to。

浏览器的支持情况:

Chrome 和 Safari 需要前缀 -webkit-Foxfire 需要前缀 -moz-

案例演示

通过“@keyframes”声明一个名叫“wobble”的动画,从“0%”开始到“100%”结束,同时还经历了一个“40%”和“60%”两个过程。“wobble”动画在“0%”时元素定位到left为100px,背景色为green,然后在“40%”时元素过渡到left为150px,背景色为orange,接着在“60%”时元素过渡到left为75px,背景色为blue,最后“100%”时结束动画,元素又回到起点left为100px处,背景色变为red。

HTML:

<div>鼠标放到我身上</div>

CSS:

@keyframes wobble {
  0% {
    margin-left: 100px;
    background:green;
  }
  40% {
    margin-left:150px;
    background:orange;
  }
  60% {
    margin-left: 75px;
    background: blue;
  }
  100% {
    margin-left: 100px;
    background: red;
  }
}
div {
  width: 100px;
  height: 100px;
  background:red;
  color: #fff;
}
div:hover{
  animation: wobble 5s ease .1s;
}

CSS3中调用动画

animation-name属性主要是用来调用 @keyframes 定义好的动画。需要特别注意: animation-name 调用的动画名需要和“@keyframes”定义的动画名称完全一致(区分大小写),如果不一致将不具有任何动画效果。

语法:

animation-name: none | IDENT[,none|DENT]*;

1、IDENT是由 @keyframes 创建的动画名,上面已经讲过了(animation-name 调用的动画名需要和“@keyframes”定义的动画名称完全一致);

2、none为默认值,当值为 none 时,将没有任何动画效果,这可以用于覆盖任何动画。

注意:需要在 Chrome 和 Safari 上面的基础上加上-webkit-前缀,Firefox加上-moz-。

CSS3中设置动画播放时间

animation-duration主要用来设置CSS3动画播放时间,其使用方法和transition-duration类似,是用来指定元素播放动画所持续的时间长,也就是完成从0%到100%一次动画所需时间。单位:S秒

语法规则

animation-duration: <time>[,<time>]*

CSS3中设置动画播放方式

animation-timing-function属性主要用来设置动画播放方式。主要让元素根据时间的推进来改变属性值的变换速率,简单点说就是动画的播放方式。

语法规则:

animation-timing-function:ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>) [, ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(<number>, <number>, <number>, <number>)]*

它和transition中的transition-timing-function一样,具有以下几种变换方式:ease,ease-in,ease-in-out,ease-out,linear和cubic-bezier。对应功如下:

在调用move动画播放中,让元素样式从初始状态到终止状态时,先加速再减速,也就是渐显渐隐效果。

CSS3中设置动画开始播放的时间

animation-delay属性用来定义动画开始播放的时间,用来触发动画播放的时间点。和transition-delay属性一样,用于定义在浏览器开始执行动画之前等待的时间。

语法规则:

animation-delay:<time>[,<time>]*

CSS3中设置动画播放次数

animation-iteration-count属性主要用来定义动画的播放次数。

语法规则:

animation-iteration-count: infinite | <number> [, infinite | <number>]*

1、其值通常为整数,但也可以使用带有小数的数字,其默认值为1,这意味着动画将从开始到结束只播放一次。

2、如果取值为infinite,动画将会无限次的播放。

CSS3中设置动画播放方向

animation-direction属性主要用来设置动画播放方向,其语法规则如下:

animation-direction:normal | alternate [, normal | alternate]*

其主要有两个值:normalalternate

1、normal是默认值,如果设置为normal时,动画的每次循环都是向前播放;

2、另一个值是alternate,他的作用是,动画播放在数次向前播放,数次向反方向播放。

例如:通过animation-direction属性,将move动画播放动画方向设置为alternate,代码为:

animation-direction:alternate;

CSS3中设置动画的播放状态

animation-play-state属性主要用来控制元素动画的播放状态

参数:

其主要有两个值:runningpaused

其中running是其默认值,主要作用就是类似于音乐播放器一样,可以通过paused将正在播放的动画停下来,也可以通过running将暂停的动画重新播放,这里的重新播放不一定是从元素动画的开始播放,而是从暂停的那个位置开始播放。另外如果暂停了动画的播放,元素的样式将回到最原始设置状态。

例如,页面加载时,动画不播放。代码如下:

animation-play-state:paused;

CSS3中设置动画时间外属性

animation-fill-mode属性定义在动画开始之前和结束之后发生的操作。主要具有四个属性值:none、forwards、backwordsboth。其四个属性值对应效果如下:


属性值


效果


none


默认值,表示动画将按预期进行和结束,在动画完成其最后一帧时,动画会反转到初始帧处


forwards


表示动画在结束后继续应用最后的关键帧的位置


backwards


会在向元素应用动画样式时迅速应用动画的初始帧


both


元素动画同时具有forwards和backwards效果

在默认情况之下,动画不会影响它的关键帧之外的属性,使用animation-fill-mode属性可以修改动画的默认行为。简单的说就是告诉动画在第一关键帧上等待动画开始,或者在动画结束时停在最后一个关键帧上而不回到动画的第一帧上。或者同时具有这两个效果。

例如:让动画停在最一帧处。代码如下:

 animation-fill-mode:forwards; 
  • 第10章 布局样式相关

为了能在Web页面中方便实现类似报纸、杂志那种多列排版的布局,W3C特意给CSS3增加了一个多列布局模块(CSS Multi Column Layout Module)。它主要应用在文本的多列布局方面,这种布局在报纸和杂志上都使用了几十年了,但要在Web页面上实现这样的效果还是有相当大的难度,庆幸的是,CSS3的多列布局可以轻松实现。接下来咱们一起学习多列布局相关的知识。

语法:

columns:<column-width> || <column-count>

多列布局columns属性参数主要就两个属性参数:列宽和列数。


参数


参数说明


<column-width>


主要用来定义多列中每列的宽度


<column-count>


主要用来定义多列中的列数

举例:要显示2栏显示,每栏宽度为200px,代码为:

columns: 200px 2;

到目前为止大部分主流浏览器都对其支持:

CSS3 多列布局——column-count

column-count属性主要用来给元素指定想要的列数和允许的最大列数。其语法规则:

column-count:auto | <integer>

取值说明:


属性值


属性值说明


auto


此值为column-count的默认值,表示元素只有一列,其主要依靠浏览器计算自动设置。


<integer>


此值为正整数值,主要用来定义元素的列数,取值为大于0的整数,负值无效。

例如:将列分成四列显示,代码如下:

column-count:4;

CSS3 多列布局——column-width

column-width的使用和CSS中的width属性一样,不过不同的是,column-width属性在定义元素列宽的时候,既可以单独使用,也可以和多列属性中其他属性配合使用。其基本语法如下所示 :

column-width: auto | <length>

取值说明:


属性值


说明


auto


如果column-width设置值为auto或者没有显式的设置值时,元素多列的列宽将由其他属性来决定,比如前面的示例就是由列数column-count来决定。


<length>


使用固定值来设置元素列的宽度,其主要是由数值和长度单位组成,不过其值只能是正值,不能为负值。

CSS3 列间距column-gap

column-gap主要用来设置列与列之间的间距,其语法规则如下:

column-gap: normal || <length>

取值说明


属性值


属性值说明


normal


默认值,默值为1em(如果你的字号是px,其默认值为你的font-size值)。


<length>


此值用来设置列与列之间的距离,其可以使用px,em单位的任何整数值,但不能是负值。

例如:将内容分三列显列,列与列之间的间距为2em,实现代码为:

column-count: 3;
column-gap: 2em;

CSS3 列表边框column-rule

column-rule主要是用来定义列与列之间的边框宽度、边框样式边框颜色。简单点说,就有点类似于常用的border属性。但column-rule是不占用任何空间位置的,在列与列之间改变其宽度不会改变任何列的位置。

语法规则:

column-rule:<column-rule-width>|<column-rule-style>|<column-rule-color>

取值说明:


属性值


属性值说明


column-rule-width


类似于border-width属性,主要用来定义列边框的宽度,其默认值为“medium”,column-rule-width属性接受任意浮点数,但不接收负值。但也像border-width属性一样,可以使用关键词:medium、thick和thin。


column-rule-style


类似于border-style属性,主要用来定义列边框样式,其默认值为“none”。column-rule-style属性值与border-style属值相同,包括none、hidden、dotted、dashed、solid、double、groove、ridge、inset、outset。


column-rule-color


类似于border-color属性,主要用来定义列边框颜色,其默认值为前景色color的值,使用时相当于border-color。column-rule-color接受所有的颜色。如果不希望显示颜色,也可以将其设置为transparent(透明色)

例如:为了能有效区分栏目列之间的关系,可以为其设置一个列边框,代码为:

column-rule: 2px dotted green;
时间: 2024-12-28 05:20:19

十天精通CSS3学习笔记 part4的相关文章

十天精通CSS3学习笔记

http://www.imooc.com/learn/33 什么是CSS3? CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主流浏览器chrome.safari.firefox.opera.甚至360都已经支持了CSS3大部分功能了,IE10以后也开始全面支持CSS3了. 在编写CSS3样式时,不同的浏览器可能需要不同的前缀.它表示该CSS属性或规则尚未成为W3C标准的一部分,是浏览器的私有属性,虽然目前较新版本的浏览器都是不需要前缀的,但为了

十天精通CSS3

课程地址:http://www.imooc.com/learn/33 第1章 初识CSS3 CSS3课程列出第一站,先带领大家进入CSS3的世界,探索CSS3的魅力!你做好准备了吗? 第2章 边框 本课程主要讲解border-color .border-image .border-radius 及box-shadow 相关知识 第3章 颜色相关 学习CSS3中与颜色有关的属性,包括RGBA colors和Gradient,来实现在此之前只能通过其它手段如背景图片才能得到的绚丽效果. 第4章 文字

CSS3学习笔记

这两天的CSS3学习笔记: 慕课网课程地址: http://www.imooc.com/learn/33 笔记: 边框: 圆角效果border-radius:同border相同的缩写方式: 阴影box-shadow: 参数说明: 说明: 单位除了用px也可以用百分比: 多个阴影:用逗号隔开即可: 模糊半径与扩展半径的区别: 阴影模糊半径:此参数可选,其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊: 阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整

《ASP.NET4 从入门到精通》学习笔记4

第4部分诊断与插件 刚开始看这章的时候,真实一头雾水,不知道在讲什么,不过看了关于http pipeline之后,才了解相关说明.因此对于这一章的学习,建议各位首先看看http pipeline然后再进行学习. 第17章诊断与调测 该部分讲解了基本的调试方法,不过个人认为调测方法其实涉及到很多方面的内容,这章也只是大概介绍几个基本的方法. l  在页面启动 trace功能,然后在页面上就可以看到调用状态了. l  除此以外,还可以修改web.configtrace enable="true&qu

十四、Android学习笔记_Android回调函数触发的几种方式 广播 静态对象

一.通过广播方式: 1.比如登录.假如下面这个方法是外界调用的,那么怎样在LoginActivity里面执行登录操作,成功之后在回调listener接口呢?如果是平常的类,可以通过构造函数将监听类对象传入即可.但是在Activity中不能传递监听对象,所以考虑使用广播来实现. public void login(final LoginOnClickListener listener) { Intent intent = new Intent(context, LoginActivity.clas

十五、Android学习笔记_授权过程

1.需要申请App Key和App Secret.不同的开发平台有不同的接入方式,可以参考文档,然后将这两个值放进去. 2.通过OAuth类实现认证,它会自动跳转到认证界面,进行授权,成功之后需要处理回调接口. 3.在第二步调用回调接口时,它会返回用户的基本信息,比如用户id.此时需要将用户id信息保存起来,为后面登录做准备.回调接口的写法就为myapp://AuthorizeActivity,其中scheme全部为小写字母. <activity android:name="com.wei

《ASP.NET4从入门到精通》学习笔记5

这个部分吗,可以说是这本书最最没有价值的部分,他自己的作者感觉都没有弄明白,就换乱介绍,而且介绍的不知所云!该部分,只是罗列的目的,建议大家不要细读这个部分的内容,浪费时间而且伤脑筋!(感慨:总是感觉国内的书,看着500多页,有含金量的太少了,大部分页面都是抽数的.可怜我的买书钱.) 第五部分,高级功能介绍 这部分的主要目的是介绍ASP.NET引入的新的技术方案,包括了AJAX,MVC,动态数据,XBAP,silverlight,WPF等等. 第20章动态数据 第21章 WPF 第22章 MVC

《ASP.NET4从入门到精通》学习笔记2

<ASP.NET4 从入门到精通>学习笔记2 第二部分  高级特性 第7章一致的界面 一致界面,一直以来都是界面设计的关键点,不同的网站,都需要一致的界面,否则的话,会出现不同的界面显示的凌乱或者给人很差的体验. 一致界面的设计方案,通常有如下三点: l  采用自定义空间的方式,也就是设计一个自定义控件,然后这个控件在每个页面都显示一下. l  父类继承的方式,也就是定义一个通用的父类,然后所有的子类都继承该父类 l  Master母版页模式,这个模式是ASP.NET2.0之后提出的来的,比较

Hadoop入门学习笔记---part4

紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操作,前提是按照<Hadoop入门学习笔记---part2>中的已经在虚拟机中搭建好了Hadoop伪分布环境:并且确定现在linux操作系统中hadoop的几个进程已经完全启动了. 好了,废话不多说!实际的例子走起. 在myeclipse中新建一个java工程: 在项目工程中新建一个lib包用于存放