directory search
简介 更新历史 关于样式表 属性 定位 布局 position z-index top right bottom left clip display float clear visibility overflow overflow-x overflow-y 尺寸 width min-width max-width height min-height max-height 外补白 margin margin-top margin-right margin-bottom margin-left 内补白 padding padding-top padding-right padding-bottom padding-left 边框 border border-width border-style border-color border-top border-top-width border-top-style border-top-color border-right border-right-width border-right-style border-right-color border-bottom border-bottom-width border-bottom-style border-bottom-style border-bottom-color border-left border-left-width border-left-style border-left-color border-radius border-top-left-radius border-top-right-radius border-bottom-right-radius border-bottom-left-radius box-shadow border-image border-image-source border-image-slice border-image-width border-image-outset border-image-repeat 背景 background background-color background-image background-repeat background-attachment background-position background-origin background-clip background-size 颜色 color opacity 字体 font font-style font-variant font-weight font-size font-family font-stretch font-size-adjust 文本 text-transform white-space tab-size word-break word-wrap overflow-wrap text-align text-align-last text-justify word-spacing letter-spacing text-indent vertical-align line-height text-size-adjust 文本装饰 text-decoration text-decoration-line text-decoration-color text-decoration-style text-decoration-skip text-underline-position text-shadow 书写模式 direction unicode-bidi writing-mode 列表 list-style list-style-image list-style-position list-style-type 表格 table-layout border-collapse border-spacing caption-side empty-cells 内容 content counter-increment counter-reset quotes 用户界面 appearance text-overflow outline outline-width outline-color outline-style outline-offset nav-index nav-up nav-right nav-down nav-left cursor zoom box-sizing resize ime-mode user-select pointer-events 多列 columns column-width column-count column-gap column-rule column-rule-width column-rule-style column-rule-color column-span column-fill column-break-before column-break-after column-break-inside 伸缩盒(旧) box-orient box-pack box-align box-flex box-flex-group box-ordinal-group box-direction box-lines 伸缩盒(新) flex flex-grow flex-shrink flex-basis flex-flow flex-direction flex-wrap align-content align-items align-self justify-content order 变换 transform transform-origin transform-style perspective perspective-origin backface-visibility 过渡 transition transition-property transition-duration transition-timing-function transition-delay 动画 animation animation-name animation-duration animation-timing-function animation-delay animation-iteration-count animation-direction animation-play-state animation-fill-mode 打印 page page-break-before page-break-after page-break-inside 媒体查询 width height device-width device-height orientation aspect-ratio device-aspect-ratio color color-index monochrome resolution scan grid Only IE scrollbar-3dlight-color scrollbar-darkshadow-color scrollbar-highlight-color scrollbar-shadow-color scrollbar-arrow-color scrollbar-face-color scrollbar-track-color scrollbar-base-color filter behavior Only webkit -webkit-text-fill-color -webkit-text-stroke -webkit-text-stroke-width -webkit-text-stroke-color -webkit-box-reflect -webkit-tap-highlight-color -webkit-user-drag -webkit-overflow-scrolling 选择符 元素选择符 通配选择符(*) 类型选择符(E) ID选择符(E#id) 类选择符(E.class) 关系选择符 包含选择符(E F) 子选择符(E>F) 相邻选择符(E+F) 兄弟选择符(E~F) 属性选择符 E[att] E[att="val"] E[att~="val"] E[att^="val"] E[att$="val"] E[att*="val"] E[att|="val"] 伪类选择符 E:link E:visited E:hover E:active E:focus E:lang(fr) E:not(s) E:root E:first-child E:last-child E:only-child E:nth-child(n) E:nth-last-child(n) E:first-of-type E:last-of-type E:only-of-type E:nth-of-type(n) E:nth-last-of-type(n) E:empty E:checked E:enabled E:disabled E:target @page:first @page:left @page:right 伪对象选择符 E:first-letter/E::first-letter E:first-line/E::first-line E:before/E::before E:after/E::after E::placeholder E::selection 语法与规则 !important /*comment*/ @import @charset @media @font-face @page @keyframes @supports 取值与单位 长度 <length> em ex ch rem vw vh vmax vmin cm mm q in pt pc px 角度 <angle> deg grad rad turn 时间 <time> s ms 频率 <frequency> Hz kHz 布局 <fraction> <grid> fr gr 分辨率 <resolution> dpi dpcm dppx 颜色 <color> Color Name HEX RGB RGBA HSL HSLA transparent currentColor 文本 inherit initial unset <string> <url> <identifier> 函数 calc() toggle() 生成内容 counter() counters() attr() 图像 <image> image() image-set() <gradient> linear-gradient() radial-gradient() repeating-linear-gradient() repeating-radial-gradient() 数字 <number> <integer> <percentage> 附录 颜色关键字 媒体类型 CSS Hack 条件Hack 属性级Hack 选择符级Hack 问题和经验 Bugs和解决方案 技巧和经验 其它经验
characters

语法:

@keyframes <identifier> { <keyframes-blocks> }

<keyframes-blocks>:[ [ from | to | <percentage> ]{ sRules } ] [ [ , from | to | <percentage> ]{ sRules } ]*

取值:

  • <identifier>:identifier定义一个动画名称

  • <keyframes-blocks>:定义动画在每个阶段的样式,即帧动画。

说明:

指定动画名称和动画效果。
  • @keyframes定义的动画名称用来被animation-name所使用。

  • 定义动画时,简单的动画可以直接使用关键字from和to,即从一种状态过渡到另一种状态:

    示例代码:

    @keyframes testanimations { from { opacity: 1; } to { opacity: 0; } }

    其中testanimations是该动画的名字,该动画表示某个东西将逐渐消失。

  • 如果复杂的动画,可以混合<percentage>去设置某个时间段内的任意时间点的样式:

    示例代码:

    @keyframes testanimations { from { transform: translate(0, 0); } 20% { transform: translate(20px, 20px); } 40% { transform: translate(40px, 0); } 60% { transform: translate(60px, 20); } 80% { transform: translate(80px, 0); } to { transform: translate(100px, 20px); } }
  • 当然,也可以不使用关键字from和to,而都使用<percentage>:

    示例代码:

    @keyframes testanimations{ 0% { transform: translate(0, 0); } 20% { transform: translate(20px, 20px); } 40% { transform: translate(40px, 0); } 60% { transform: translate(60px, 20px); } 80% { transform: translate(80px, 0); } 100% { transform: translate(100px, 20px); } }

    注意,这里的0%不能简写成0,0是非标准语法(虽然被某些浏览器所支持)。

兼容性:

IEFirefoxChromeSafariOperaiOS SafariAndroid BrowserAndroid Chrome
6.0-9.02.0-4.04.0-43.0
-webkit-
3.1-3.215.0-29.0
-webkit-
3.2-8.1
-webkit-
2.1-3.0
-webkit-
18.0-40.0
-webkit-
10.0+5.0-15.0
-moz-
4.0-8.1
-webkit-
4.0+
-webkit-
16.0

示例:

实例

<!DOCTYPE html>
<html lang="zh-cmn-Hans">
<head>
<meta charset="utf-8" />
<title>@keyframes_CSS参考手册_web前端开发参考手册系列</title>
<meta name="author" content="Joy Du(飘零雾雨), dooyoe@gmail.com, www.doyoe.com" />
<style>
#sport{position:relative;width:500px;height:400px;border:1px solid #ddd;}
#staff{position:absolute;z-index:3;bottom:10px;left:10px;overflow:hidden;width:180px;height:8px;border-radius:3px;background:#ddd;line-height:20;
	-webkit-animation:staff 3s linear;
	animation:staff 3s linear;
}
#ball{position:absolute;z-index:3;bottom:20px;left:90px;overflow:hidden;width:30px;height:30px;border-radius:15px;box-shadow:0 0 10px rgba(204,102,0,.8);background:#F6D66E;background:linear-gradient(top,#fff,#F6D66E);line-height:20;
	-webkit-animation:ball 3s linear;
	animation:ball 3s linear;
}
@-webkit-keyframes ball{
	0%{-webkit-transform:translate(0,0);}
	5%{-webkit-transform:translate(-90px,-100px);}
	18%{-webkit-transform:translate(0,-350px);}
	35%{-webkit-transform:translate(200px,0);}
	46%{-webkit-transform:translate(380px,-160px);}
	60%{-webkit-transform:translate(250px,-350px);}
	78%{-webkit-transform:translate(60px,0);}
	100%{-webkit-transform:translate(0,0);}
}
@keyframes ball{
	0%{transform:translate(0,0);}
	5%{transform:translate(-90px,-100px);}
	18%{transform:translate(0,-350px);}
	35%{transform:translate(200px,0);}
	46%{transform:translate(380px,-160px);}
	60%{transform:translate(250px,-350px);}
	78%{transform:translate(60px,0);}
	100%{transform:translate(0,0);}
}
@-webkit-keyframes staff{
	0%{-webkit-transform:translate(0,0);}
	6%{-webkit-transform:translate(260px,0);}
	20%{-webkit-transform:translate(300px,0);}
	30%{-webkit-transform:translate(300px,0);}
	40%{-webkit-transform:translate(200px,0);}
	65%{-webkit-transform:translate(40px,0);}
	79%{-webkit-transform:translate(0,0);}
	100%{-webkit-transform:translate(0,0);}
}
@keyframes staff{
	0%{transform:translate(0,0);}
	6%{transform:translate(260px,0);}
	20%{transform:translate(300px,0);}
	30%{transform:translate(300px,0);}
	40%{transform:translate(200px,0);}
	65%{transform:translate(40px,0);}
	79%{transform:translate(0,0);}
	100%{transform:translate(0,0);}
}
</style>
</head>
<body>
<div id="sport">
	<span id="ball">弹球</span>
	<span id="staff">滑杆</span>
</div>
</body>
</html>
			

运行实例 »

点击 "运行实例" 按钮查看在线实例

Previous article: Next article: