# CSS3 @keyframes 规则
## 实例
使 div 元素匀速向下移动:
```
@keyframes mymove
{
from {top:0px;}
to {top:200px;}
}
@-moz-keyframes mymove /* Firefox */
{
from {top:0px;}
to {top:200px;}
}
@-webkit-keyframes mymove /* Safari 和 Chrome */
{
from {top:0px;}
to {top:200px;}
}
@-o-keyframes mymove /* Opera */
{
from {top:0px;}
to {top:200px;}
}
```
页面底部有更多实例。
## 浏览器支持
| IE | Firefox | Chrome | Safari | Opera |
| --- | --- | --- | --- | --- |
目前浏览器都不支持 @keyframes 规则。
Firefox 支持替代的 @-moz-keyframes 规则。
Opera 支持替代的 @-o-keyframes 规则。
Safari 和 Chrome 支持替代的 @-webkit-keyframes 规则。
## 定义和用法
通过 @keyframes 规则,您能够创建动画。
创建动画的原理是,将一套 CSS 样式逐渐变化为另一套样式。
在动画过程中,您能够多次改变这套 CSS 样式。
以百分比来规定改变发生的时间,或者通过关键词 "from" 和 "to",等价于 0% 和 100%。
0% 是动画的开始时间,100% 动画的结束时间。
为了获得最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。
注释:请使用动画属性来控制动画的外观,同时将动画与选择器绑定。
## 语法
```
@keyframes _animationname_ {_keyframes-selector_ {_css-styles_;}}
```
| 值 | 描述 |
| --- | --- |
| _animationname_ | 必需。定义动画的名称。 |
| _keyframes-selector_ |
必需。动画时长的百分比。
合法的值:
* 0-100%
* from(与 0% 相同)
* to(与 100% 相同)
|
| _css-styles_ | 必需。一个或多个合法的 CSS 样式属性。 |
## 亲自试一试 - 实例
### 实例 1
在一个动画中添加多个 keyframe 选择器:
```
@keyframes mymove
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-moz-keyframes mymove /* Firefox */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
@-o-keyframes mymove /* Opera */
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
```
### 实例 2
在一个动画中改变多个 CSS 样式:
```
@keyframes mymove
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-moz-keyframes mymove /* Firefox */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-webkit-keyframes mymove /* Safari 和 Chrome */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
@-o-keyframes mymove /* Opera */
{
0% {top:0px; background:red; width:100px;}
100% {top:200px; background:yellow; width:300px;}
}
```
### 实例 3
带有多个 CSS 样式的多个 keyframe 选择器:
```
@keyframes mymove
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}
@-moz-keyframes mymove /* Firefox */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}
@-webkit-keyframes mymove /* Safari and Chrome */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}
@-o-keyframes mymove /* Opera */
{
0% {top:0px; left:0px; background:red;}
25% {top:0px; left:100px; background:blue;}
50% {top:100px; left:100px; background:yellow;}
75% {top:100px; left:0px; background:green;}
100% {top:0px; left:0px; background:red;}
}
```
## 相关页面
CSS3 教程:[CSS3 动画](/css3/css3_animation.asp "CSS3 动画")
- CSS3 动画属性(Animation)
- CSS3 @keyframes 规则
- CSS3 animation 属性
- CSS3 animation-name 属性
- CSS3 animation-duration 属性
- CSS3 animation-timing-function 属性
- CSS3 animation-delay 属性
- CSS3 animation-iteration-count 属性
- CSS3 animation-direction 属性
- CSS3 animation-play-state 属性
- CSS3 animation-fill-mode 属性
- CSS 背景属性(Background)
- CSS background 属性
- CSS background-attachment 属性
- CSS background-color 属性
- CSS background-image 属性
- CSS background-position 属性
- CSS background-repeat 属性
- CSS3 background-clip 属性
- CSS3 background-origin 属性
- CSS3 background-size 属性
- CSS 边框属性(Border 和 Outline)
- CSS border 属性
- CSS border-bottom 属性
- CSS border-bottom-color 属性
- CSS border-bottom-style 属性
- CSS border-bottom-width 属性
- CSS border-color 属性
- CSS border-left 属性
- CSS border-left-color 属性
- CSS border-left-style 属性
- CSS border-left-width 属性
- CSS border-right 属性
- CSS border-right-color 属性
- CSS border-right-style 属性
- CSS border-right-width 属性
- CSS border-style 属性
- CSS border-top 属性
- CSS border-top-color 属性
- CSS border-top-style 属性
- CSS border-top-width 属性
- CSS border-width 属性
- CSS outline 属性
- CSS outline-color 属性
- CSS outline-style 属性
- CSS outline-width 属性
- CSS3 border-bottom-left-radius 属性
- CSS3 border-bottom-right-radius 属性
- CSS3 border-image 属性
- CSS3 border-image-outset 属性
- CSS3 border-image-repeat 属性
- CSS3 border-image-slice 属性
- CSS3 border-image-source 属性
- CSS3 border-image-width 属性
- CSS3 border-radius 属性
- CSS3 border-top-left-radius 属性
- CSS3 border-top-right-radius 属性
- CSS3 box-shadow 属性
- Box 属性
- CSS3 overflow-x 属性
- CSS3 overflow-y 属性
- CSS3 overflow-style 属性
- CSS3 rotation 属性
- CSS3 rotation-point 属性
- Color 属性
- CSS3 opacity 属性
- Content for Paged Media 属性
- CSS 尺寸属性(Dimension)
- CSS height 属性
- CSS max-height 属性
- CSS max-width 属性
- CSS min-height 属性
- CSS min-width 属性
- CSS width 属性
- 可伸缩框属性(Flexible Box)
- CSS3 box-align 属性
- CSS3 box-direction 属性
- CSS3 box-flex 属性
- CSS3 box-flex-group 属性
- CSS3 box-lines 属性
- CSS3 box-ordinal-group 属性
- CSS3 box-orient 属性
- CSS3 box-pack 属性
- CSS 字体属性(Font)
- CSS font 属性
- CSS font-family 属性
- CSS font-size 属性
- CSS font-size-adjust 属性
- CSS font-stretch 属性
- CSS font-style 属性
- CSS font-variant 属性
- CSS font-weight 属性
- 内容生成(Generated Content)
- CSS content 属性
- CSS counter-increment 属性
- CSS counter-reset 属性
- CSS quotes 属性
- Grid 属性
- CSS3 grid-columns 属性
- CSS3 grid-rows 属性
- Hyperlink 属性
- CSS3 target 属性
- CSS3 target-name 属性
- CSS3 target-new 属性
- CSS3 target-position 属性
- CSS 列表属性(List)
- CSS list-style 属性
- CSS list-style-image 属性
- CSS list-style-position 属性
- CSS list-style-type 属性
- CSS 外边距属性(Margin)
- CSS margin 属性
- CSS margin-bottom 属性
- CSS margin-left 属性
- CSS margin-right 属性
- CSS margin-top 属性
- Marquee 属性
- 多列属性(Multi-column)
- CSS3 column-count 属性
- CSS3 column-fill 属性
- CSS3 column-gap 属性
- CSS3 column-rule 属性
- CSS3 column-rule-color 属性
- CSS3 column-rule-style 属性
- CSS3 column-rule-width 属性
- CSS3 column-span 属性
- CSS3 column-width 属性
- CSS3 columns 属性
- CSS 内边距属性(Padding)
- CSS padding 属性
- CSS padding-bottom 属性
- CSS padding-left 属性
- CSS padding-right 属性
- CSS padding-top 属性
- Paged Media 属性
- CSS 定位属性(Positioning)
- CSS bottom 属性
- CSS clear 属性
- CSS clip 属性
- CSS cursor 属性
- CSS display 属性
- CSS float 属性
- CSS left 属性
- CSS overflow 属性
- CSS position 属性
- CSS right 属性
- CSS top 属性
- CSS vertical-align 属性
- CSS visibility 属性
- CSS z-index 属性
- CSS 打印属性(Print)
- CSS page-break-after 属性
- CSS page-break-before 属性
- CSS page-break-inside 属性
- CSS 表格属性(Table)
- CSS border-collapse 属性
- CSS border-spacing 属性
- CSS caption-side 属性
- CSS empty-cells 属性
- CSS table-layout 属性
- CSS 文本属性(Text)
- CSS color 属性
- CSS direction 属性
- CSS letter-spacing 属性
- CSS line-height 属性
- CSS text-align 属性
- CSS text-decoration 属性
- CSS text-indent 属性
- CSS text-transform 属性
- CSS unicode-bidi 属性
- CSS white-space 属性
- CSS word-spacing 属性
- CSS3 hanging-punctuation 属性
- CSS3 punctuation-trim 属性
- CSS3 text-emphasis 属性
- CSS3 text-justify 属性
- CSS3 text-outline 属性
- CSS3 text-overflow 属性
- CSS3 text-shadow 属性
- CSS3 text-wrap 属性
- CSS3 word-break 属性
- CSS3 word-wrap 属性
- 2D/3D 转换属性(Transform)
- CSS3 transform 属性
- CSS3 transform-origin 属性
- CSS3 transform-style 属性
- CSS3 perspective 属性
- CSS3 perspective-origin 属性
- CSS3 backface-visibility 属性
- 过渡属性(Transition)
- CSS3 transition 属性
- CSS3 transition-property 属性
- CSS3 transition-duration 属性
- CSS3 transition-timing-function 属性
- CSS3 transition-delay 属性
- 用户界面属性(User-interface)
- CSS3 appearance 属性
- CSS3 box-sizing 属性
- CSS3 icon 属性
- CSS3 nav-down 属性
- CSS3 nav-index 属性
- CSS3 nav-left 属性
- CSS3 nav-right 属性
- CSS3 nav-up 属性
- CSS3 outline-offset 属性
- CSS3 resize 属性
- CSS 选择器参考手册
- CSS 听觉参考手册
- CSS 网络安全字体组合
- CSS 单位
- CSS 颜色
- CSS 合法颜色值
- CSS 颜色名
- CSS 颜色十六进制值
- 免责声明