# 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 顏色十六進制值
- 免責聲明