CSS学习笔记之CSS3新特性
这篇文章,我们将会介绍在 CSS3 中加入的 过渡 与 动画 效果
1、过渡
通过 CSS3,我们可以在不使用 Flash 或 JavaScript 的情况下,使得元素在样式转换时添加过渡效果
(1)属性名称
可以使用 transition-property 规定应用过渡效果的属性名称,当指定的属性改变时,过渡效果开始作用
可选值如下:
none
:表示没有属性获得过渡效果,默认值all
:表示所有属性获得过渡效果名称列表
:指定获得过渡效果的属性,列表以逗号分隔
(2)作用时间
可以使用 transition-duration 规定过渡效果的作用时间,其接受一个时间值,默认为 0
因此在使用过渡效果时,必须要设置 transition-duration 属性,否则将无法看到过渡效果
(3)作用速度
可以使用 transition-timing-function 规定过渡效果的速度曲线,可选值如下:
linear
:以相同的速度从开始至结束ease
:默认值,以慢速开始,然后变快,以慢速结束ease-in
:以慢速开始ease-out
:以慢速结束ease-in-out
:以慢速开始,以慢速结束
(4)延迟时间
可以使用 transition-delay 延迟过渡效果的开始时间,这个属性同样接受一个时间值,默认为 0
(5)简写属性
为了方便,可以仅在 transition 属性中设置所有有关过渡效果的属性
transition: property duration timing-function delay;
一个简单的例子如下:
<!DOCTYPE HTML>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: LightSkyBlue;
}
div:hover {
width: 300px;
}
.withTransition {
width: 100px;
height: 100px;
background: LightSkyBlue;
transition: width 1s ease;
-o-transition: width 1s ease; /* Opera */
-moz-transition: width 1s ease; /* Firefox */
-webkit-transition: width 1s ease; /* Safari and Chrome */
}
/* 当鼠标停留在 div 元素上时,宽度将会变化,从而产生过渡效果 */
</style>
</head>
<body>
<div></div>
<br/>
<div class="withTransition"></div>
</body>
</html>
2、动画
通过 CSS3,我们可以在不使用 Flash 或 JavaScript 的情况下,为网页创建动画
(1)动画名称
可以使用 animation-name 属性规定动画名称,它的可选值有两个:
none
:无动画,一般用于覆盖来自级联的动画效果名称
:定义动画名称
(2)播放时间
可以使用 animation-duration 规定动画效果的作用时间,其接受一个时间值,默认为 0
因此在使用动画时,必须要设置 animation-duration属性,否则将无法看到动画效果
(3)播放速率
可以使用 animation-timing-function 规定动画效果的速度曲线,可选值如下:
linear
:以相同的速度从开始至结束ease
:默认值,以慢速开始,然后变快,以慢速结束ease-in
:以慢速开始ease-out
:以慢速结束ease-in-out
:以慢速开始,以慢速结束
(4)延迟时间
可以使用 animation-delay 延迟动画效果的开始时间,这个属性同样接受一个时间值,默认为 0
(5)播放次数
可以使用 animation-iteration-count 属性规定动画的播放次数,可选值如下:
数字
:表示播放次数,默认为 1infinite
:表示无限播放
(6)播放方向
可以使用 animation-direction 属性规定动画的播放方向,可选值如下:
normal
:默认值,正常播放alternate
:轮流反向播放
(7)播放状态
可以使用 animation-play-state 属性规定动画的播放状态,可选值如下:
running
:默认值,正在播放paused
:暂停
(8)间隙可见性
可以使用 animation-fill-mode 属性规定动画在播放之前或之后效果的可见性,可选值如下:
none
:不改变默认行为forwards
:在动画完成之后,保持最后的属性值(在最后一个关键帧中定义)backwards
:在动画显示之前,应用开始的属性值(在第一个关键帧中定义)both
:在动画显示之前应用开始的属性值,在动画完成之后保持最后的属性值
(9)简写属性
为了方便,可以仅在 animation 属性中设置所有有关动画的属性
animation: name duration timing-function delay iteration-count direction;
(10)@keyframes 规则
动画的原理其实就是将一套 CSS 样式逐渐变换成另一套 CSS 样式
我们可以通过 keyframes 规则,通过百分比定义关键帧的 CSS 样式,从而创建出一个连续播放的动画
另外除了使用百分比,也能使用关键字定义关键帧,关键字分别是 from
(对应 0%
)和 to
(对应 100%
)
一个简单的例子如下:
<!DOCTYPE HTML>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: LightSkyBlue;
position: relative;
animation: test 2s linear infinite alternate;
-webkit-animation: test 2s linear infinite alternate; /*Safari and Chrome*/
}
@keyframes test {
from { left: 0px; }
to { left: 200px; }
}
@-webkit-keyframes test { /*Safari and Chrome*/
from { left:0px; }
to { left:200px; }
}
</style>
</head>
<body>
<div></div>
</body>
</html>
【 阅读更多 CSS 系列文章,请看 CSS学习笔记 】
CSS学习笔记之CSS3新特性的更多相关文章
- C++ 学习笔记(一些新特性总结3)
C++ 学习笔记(一些新特性总结3) public.protected 和 private 继承 public 继承时,基类的存取限制是不变的. class MyClass { public: // ...
- HTML学习笔记之HTML5新特性
目录 1.拖放 2.画布 3.可伸缩矢量图形 4.地理定位 5.Web 存储 6.应用缓存 7.Web Worker 1.拖放 拖放是一种常见的特性,用于抓取对象以后拖到另一个位置,它是 HTML5 ...
- Groovy学习笔记-Java 5新特性支持
1.枚举enum enum CoffeeSize{ SHORT, SMALL, MEDIUM, LARGE, MUG } def orderCoffee(size){ print "Coff ...
- 新特性AAtitti css3 新特性attilax总结titti css
Atitti css3 新特性attilax总结 图片发光效果2 透明渐变效果2 文字描边2 背景拉伸2 CSS3 选择器(Selector)4 @Font-face 特性7 Word-wrap &a ...
- css css3新特性
css css3新特性 一.css3是什么? 我不喜欢把已有的概念从一个地方抄到另一个地方,还是喜欢如下方式. 参考百度百科: http://baike.baidu.com/link?url=z2V ...
- css3新特性学习系列 -- border
css3新特性 border属性(border-radius.border-image.box-shadow)详解 1.border-radius 圆角 支持:IE9+ 用法: border-rad ...
- CSS3新特性(阴影、动画、渐变、变形、伪元素等)
CSS3与页面布局学习总结(六)--CSS3新特性(阴影.动画.渐变.变形.伪元素等) 目录 一.阴影 1.1.文字阴影 1.2.盒子阴影 二.背景 2.1.背景图像尺寸 2.2.背景图像显示的原 ...
- css3新特性总结
一.什么是css3 css用于控制网页的样式和布局,css3是css的升级版本,受浏览器限制,跨浏览器开发有点复杂.css3完全向后兼容 二.css3新特性 1.边框 css3的边框有如下属性: (1 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
随机推荐
- Android Notification状态栏通知
没有添加额外的震动及声音效果,这里直接实现了通知的功能,看效果吧: MainActivity.java package com.example.notification; import android ...
- 如何将hyper-v虚拟机转换成vmware的虚拟机- 转换SharePoint 2010 Information Worker Demonstration and Evaluation Virtual Machine (SP1)
官方有一个用于SharePoint的demo用的虚拟机: 2010 Information Worker Demonstration and Evaluation Virtual Machine (S ...
- Golang Template source code analysis(Parse)
This blog was written at go 1.3.1 version. We know that we use template thought by followed way: fun ...
- img标签间距问题
关于img标签间距问题:多个img之间有间距,包含img标签的div之间有间距. <!doctype html> 2 <html lang="en"> 3 ...
- Moon Http Server,强大如斯的全脚本web服务器
Moon Http Server(MHS) 是一个使用Pascal脚本的高性能Web服务器. 昨天晚上是第一次接触.花了30分钟入门,非常强大.是Delphi 者开发Web的福音. 引用一下作者的介绍 ...
- Integer应该用==还是equals
问题引出:“Integer应该用==还是equals” 讨论这个问题之前我们先放一段代码 public static void main(String[] args) { Integer a1 = 2 ...
- Redis(四)-配置
Redis 配置 Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf. 你可以通过 CONFIG 命令查看或设置配置项. 语法 Redis CONFIG 命令格式如下: ...
- js,jquery中.each()方法遍历如何终止循环
用.each()方法遍历节点的时候,用“return false”只能终止当前循环并跳入下一次循环,并不能终止所有循环.代码如下: $(".days").each(function ...
- collectionView必须点击两次才跳转
今天遇到一个很奇怪的现象:collectionView必须点击两次才能跳转.具体看代码: -(void)collectionView:(UICollectionView *)collectionVie ...
- Beta冲刺-星期三
这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 Three cobblers 这个作业的目标 剩余任务预估,分配 ...