【前端技术文档】水平垂直居中方式

整    理:曹燕、肖雅君

时    间:2015-11-13

说    明:html中元素实现垂直水平居中的方式

 

1. 块级元素和内联元素

1.1区别

1.2常用块级及内联元素

1.3内联块状元素

2. 水平居中

2.1 text-align:center

2.2 margin:0 auto

2.3 绝对定位水平居中方法一

2.4绝对定位水平居中方法二

2.5浮动配合相对定位

3. 垂直居中

3.1 line-height

3.2 vertical-align:middle配合line-height

3.3绝对定位垂直居中方法一

3.4绝对定位垂直居中方法二

4. 表格的居中问题

4.1表格居中

4.2扩展

5. 常用的绝对居中(水平垂直居中)方法

5.1一行文字的水平垂直居中

5.2内联元素的水平垂直居中

5.3任何元素的水平垂直居中

5.4translate方法

 

1.块级元素和内联元素

1.1区别

(1)块级元素会独占一行,其宽度自动填满其父元素宽度。

内联元素不会独占一行,相邻的内联元素会排列在同一行里,直到一行排不下,才会换行,其宽度随元素的内容而变化。

(2)块级元素可以设置 width, height属性。

内联元素设置width,  height无效。

(3)块级元素可以设置margin 和 padding.

内联元素水平方向的padding-left,padding-right,margin-left,margin-right 都产生边距效果,但竖直方向的padding-top,padding-bottom,margin-top,margin-bottom都不会产生边距效果。

1.2常用块级及内联元素

块级元素:div,p,h1 -h6,hr,ol,ul,dl dt dd,form

内联元素:a,br,img,input,label,select,span,strong,b,em,font,i,small

1.3内联块状元素

同时具备内联元素、块状元素的特点,设置方法是display:inline-block

①和其他元素都在一行上;

②元素可以设置width, height,margin 和 padding。

 

2.水平居中

2.1 text-align:center

设置位置:块级元素

实现效果:使得块级元素内部的文本及内联元素、内联块状元素在水平方向上居中。并且它里面所有的文字、内联元素、内联块状元素都只会相对于最近一层块级元素来实现水平居中。

注:在IE6、7中,它能使任何元素进行水平居中。

示例:水平垂直居中方式2277 水平垂直居中方式2279

效果:水平垂直居中方式2285

 

2.2 margin:0 auto

设置位置:块级元素

实现效果:使块级元素自身水平居中。使用这个方法的前提是块级元素必须设置宽度,这样才能根据宽度自动调节左右两边的margin值,使之居中。

示例:水平垂直居中方式2389 水平垂直居中方式2391

 

效果:水平垂直居中方式2397

2.3 绝对定位水平居中方法一

方法:position:absolute;left:50%;再设置magin-left的值为负的元素宽度的一半。

设置位置:任何元素(任何元素设置了绝对定位之后display属性值会变为inline-block)。前提是元素必须设置宽度。

实现效果:使任何元素在水平方向上居中

示例:水平垂直居中方式2559 水平垂直居中方式2561

 

效果:水平垂直居中方式2567

2.4绝对定位水平居中方法二

方法:position:absolute; left:0; right:0; margin:auto;

设置位置:任何元素。前提是元素必须设置宽度。

实现效果:使任何元素在水平方向上居中

示例:水平垂直居中方式2683 水平垂直居中方式2685

 

效果:水平垂直居中方式2691

 

2.5浮动配合相对定位

方法:给要居中的元素加一层wrapper,wrapper设置:position:relative; float:left; left:50%;居中元素自身设置:position:relative; left:-50%;

设置位置:任何元素。优点是无需知道元素的宽度。

示例:水平垂直居中方式2844 水平垂直居中方式2846

效果:水平垂直居中方式2852

3.垂直居中

3.1 line-height

方法:将一个元素height和line-hieght的值设为一样

设置元素:块级元素

实现效果:使得块元素内部的文本垂直居中显示

示例:水平垂直居中方式2945 水平垂直居中方式2947

效果:水平垂直居中方式2953

3.2 vertical-align:middle配合line-height

设置元素:块级元素设置line-height与自身的height相同,它的内联子元素设置vertical-align:middle。

实现效果:使得内联元素相对于父元素垂直居中。因为vertical-align设置的是内联元素的基线相对于该元素所在行的基线的垂直对齐方式,必须先通过line-height设置行高,然后vertical-align:middle使得该元素的基线与所在行基线垂直居中对齐。

注:在IE6中无效。

示例:水平垂直居中方式3212 水平垂直居中方式3214

效果:水平垂直居中方式3220

3.3绝对定位垂直居中方法一

方法:position:absolute;top:50%;再设置magin-top的值为负的元素高度的一半。

设置位置:任何元素(任何元素设置了绝对定位之后display属性值会变为inline-block)。前提是元素必须设置高度。

实现效果:使任何元素在垂直方向上居中。

示例:水平垂直居中方式3380 水平垂直居中方式3382

效果:水平垂直居中方式3388

3.4绝对定位垂直居中方法二

方法:position:absolute;top:0;bottom:0;margin:auto;

设置位置:任何元素。前提是元素必须设置高度。

实现效果:使任何元素在垂直方向上居中。

示例:水平垂直居中方式3502 水平垂直居中方式3504

效果:水平垂直居中方式3510

4.表格的居中问题

4.1表格居中

(1)方法一:通过表格自身属性实现。水平居中通过align=”center”实现,垂直居中通过valign=”middle”实现,设置在th或td上,使得单元格的内容居中。

默认情况下,th完全居中,td在垂直方向上居中。

示例:水平垂直居中方式3645 水平垂直居中方式3647

效果:水平垂直居中方式3653

(2)方法二:通过css属性实现。水平居中通过text-align:center实现(前提是单元格内容是内联元素或内联块状元素),垂直居中通过vertical-align:middle实现。

4.2扩展

对于那些不是表格的元素,可以通过display:table-cell 来把它模拟成一个表格单元格,然后利用4.1中表格居中的方法二实现居中。

示例:水平垂直居中方式3833 水平垂直居中方式3835

效果:水平垂直居中方式3841

5.常用的绝对居中(水平垂直居中)方法

5.1一行文字的水平垂直居中

方法:text-align:center;外层块元素的line-height与height值相同

5.2内联元素的水平垂直居中

方法:外层块设置text-align:center;vertical-align:middle;line-height与height值相同

5.3任何元素的水平垂直居中

方法一:position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;

方法二:position:absolute;top:50%;left:50%;margin-top:负半元素高;margin-left:负半元素宽;

5.4translate方法

方法:元素设置position:absolute;top:50%;left:50%;然后设置transform: translate(-50%,-50%);

示例:水平垂直居中方式4264 水平垂直居中方式4266

效果:水平垂直居中方式4272

前端与后端配合须知

整 理:晋哲、雷媛

时 间:2015-11-12

说 明:前端在团队合作中如何与上下游紧密配合


---------- 与后端配合须知 ----------

一、HTML方面

1、不要通篇都是<div>标签,便于后端识别HTML代码。
比如:<ul><li>用于结构、样式相同的列表。

2、在需要结构、样式相同的列表时需注意:如果有个别列表上有特殊样式,尽量不去添加单独的class或内嵌style,选择使用伪类或伪元素选择器编写特殊的样式。保证列表的HTML代码结构的一致性。
比如<ul><li>列表,多个<a>标签列表等,往往需要设置最后一个元素的样式,可以使用伪元素选择器:last-child编写独立的样式。

3、注释很重要
当页面代码很多时,需用注释划分代码区块,注明用途,但也不宜文字过多。

4、前端需要会简单的php,if判断、for循环、include语句的改写
比如:一个列表一样的数据,无需写多个li标签,可以写一个li然后用for循环,精简代码;公共引用的header和footer部分使用include语句引入。

5、在Appserv中直接编写.php文件,利于查看生效的php代码,也方便后端改写。

6、需要后端for循环写入的list代码,前端在HTML中复制出两段以上,方便后端知晓,只有一段list代码不好找。
比如:<li>标签约定俗成地作为循环列表,后端人员看到<li>标签时也可引起注意。

7、需要后端if判断的代码,前端就不需要为了都显示出来而写多余的js代码。只需要显示一个代码段,其他代码段用style="display:none;"隐藏起来就可以了。
比如:下图弹出框有两个条件状态:领取成功、领取失败。将需要改变的代码段,一个显示,一个隐藏,之后后端只需if判断“popup-box”的部分即可。
ph-pic1
但需注意:选项卡的内容切换不需要后端if判断,所以还是属于前端js去控制显示和隐藏。

二、CSS方面

1、不要使用id选择器编写样式(编写js时可以设置id,建议jQuery用class选择器)。

2、交互切换性的部分,单独立一个特殊样式的class名,方便调取。
比如:<li>列表中需要一个凸显的样式,那么在<li>里面编写公共样式,再将变换的样式写在单独的class上。常提取出背景色background-color、背景图片background-image、字体颜色color、边框色border-color等样式。
ph-pic2
3、切图过程中,所有的图片都需要优化,手机端的图片不能超过70KB,避免后期后端还需去单独优化图片。

4、项目页面的样式放置在统一的外部css文件中;多个页面引用的公共样式需提炼出来放置一处,不要多处复制。

5、独立的页面,如活动页面,因css代码较少,根据后端需求,一般内嵌至HTML页面的<head>中。

三、JS方面

1、js代码统一放置在页面代码最下面,位于</body>之上;引用的外部js放置在编写的js代码之前,利于js代码的加载。

2、每个模块区域作用的js代码要分段编写,并注明每段js代码的用途,不要将所有的js代码混合在一起或合并起来,方便后端快速修改、删除,并合并前后端代码。

3、交互性js效果都需前端实现,减少后端工作量;根据用户体验,交互效果尽量考虑周全,减少遗漏。

4、若前期已有现成的js效果代码可以直接采用,比自己现编写更实用、更效率。

四、调试页面

1、做完页面之后前端必须先对照设计稿调试页面,包括电脑上的页面显示以及各种型号的手机上的呈现效果。在确认没有页面结构、样式问题后,再提交到后端。尽量避免HTML结构代码的返工修改。

2、对照设计图调试的同时,需要考虑用户的可操作性,以及页面的美观效果,避免后期上线时需再次修改。
比如:字体的大小是否合适、弹框文字是否居中、弹框的遮罩层点击之后弹框是否关闭(包括确定按钮、关闭按钮)等等,一系列影响美观和用户操作的细节问题。

3、浏览器审查元素调试页面样式更便捷、更直观、更准确。得到属性值后再去编辑器里修改。

4、页面调试时使用PageSpeed插件分析页面性能,进行相应调整。

5、当后端生成出测试页面时,前端需再次测试页面,确保页面代码布局没有遗漏,根据后端需求、实际环境调整样式。

五、及时沟通

1、前端工作开始之前先确认自己的上下游,拿到设计稿后,将JPG效果图传给后端预先知晓。

2、在拿到设计图的同时,整个图的流程需要搞清楚,若不清楚需要和后端或者是负责人及时沟通,避免后端与前端的逻辑流程差异过大,交接时出现不必要的麻烦。

3、当页面交接时有需要特别交代的地方,文字表达不清楚时,当面交流更效率。


---------- 与编辑、设计配合须知 ----------

1、总览页面效果图,看到不确定元素时,需与负责人沟通,确定其想要的布局形式以及交互动态效果,避免与需求不符。

2、需要交互变换效果的元素,先确认设计稿里是否有隐藏图层。如果没有再与设计确认交互样式。

3、当页面完成之后,可以交于编辑确认是否有遗漏,再提交给后端或上线。

4、专题页面需编辑提供的信息:
(1)专题项目命名
(2)网页标题:title
(3)关键字(PC端):keyword
(4)关键描述(PC端):description
(5)微信分享的文案和图片
(6)cnzz代码
(7)“往期回顾”版块所需图片及链接
(8)视频文件:pc版需要flv格式,wap端需要MP4格式

【前端技术文档】CSS选择器

整 理:徐秀、晋哲

时 间:2015-11-09

说 明:CSS各种选择器及其意义,以及常见选择器的用法,附CSS命名建议

  • 什么是CSS?

CSS是Cascading style sheets【层叠样式表】的缩写,用来控制DOM节点的表现样式。

  • CSS结构

CSS组成: selector{property:value;}

  • CSS的选择器

选择器是确定CSS样式控制范围的标识,由于添加样式元素。

选择器优先原则:1、就近原则;2、控制范围越小,权重越高;选择符权重:id:100;class:10;标签:1;一个选择器的权重等于各个层级的权重之和,如:

#container  .lists  ul  li.item { … }的权重:100+10 +1+1+10=122.

  1. 基础选择器
选择器 含义 示例
* 通用元素选择器,匹配任何元素 * { margin:0; padding:0; }
E 标签选择器,匹配所有使用E标签的元素 p { font-size:2em; }
.info和E.info class选择器,匹配所有class name是info的(E)元素 .info { background:#ff0; }
p.info { background:#ff0; }
#info和E#info id选择器,匹配所有id的name为info的(E)元素。 #info { background:#ff0; }
p#info { background:#ff0; }
  1. 组合选择器
选择器 含义 示例
E,F 群组选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔 div,p { color:#f00; }
E F 后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔 #nav li { display:inline; }
li a { font-weight:bold; }
E > F 子元素选择器,匹配所有E元素的子元素F,如果F下还有F,不受该样式影响;不影响E的孙子元素F。 .one > strong { color:#f00; }
E + F 毗邻元素选择器,匹配所有紧随E元素之后的第一个同级元素F .one + p { color:#f00; }
E~F 同级选择器,匹配E元素之后的所有同级元素F。 .two ~ ul{ list-style:none; }
  1. 属性选择器【ie8- 版本必须声明<!doctype>,否则(伪)属性、伪类选择器无效】
选择器 含义 示例
E[att] 匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如“[cheacked]”。以下同。) p[title] { color:#f00; }
E[att=val] 匹配所有att属性等于“val”的E元素 div[class=”error”] { color:#f00; }
E[att~=val] 匹配所有att属性中包含单词“val”的E元素,该单词必须独立,前后被空格隔开。 td[class~=”name”] { color:#f00; }
E[att|=val] 匹配所有att属性以”val”开头的E元素,且”val”后必须接连字符(“-”) p[lang|=en] { color:#f00; }
CSS3新增属性选择器
E[att^=”val”] 属性att的值以”val”开头的元素 div[id^="nav"] { background:#ff0; }
E[att$=”val”] 属性att的值以”val”结尾的元素 a[src$=".pdf"]
E[att*=”val”] 属性att的值包含”val”字符串的元素 a[src*="abc"]
  1. 伪类选择器
选择器 含义 示例
E:link 匹配所有未被点击的链接 a:link {color: #f00;text-decoration:underline; }
E:visited 匹配所有已被点击的链接 a:visited {color: #f00;text-decoration:none; }
E:active 匹配鼠标已经其上按下、还没有释放的E元素 a:active {color: #f00;text-decoration:none; }
E:hover 匹配鼠标悬停其上的E元素 a:hover {color: #0f0;text-decoration:none; }
E:focus 匹配获得当前焦点的E元素【ie9+】 input[type=text]:focus { color:#000; background:#ffe; }
input[type=text]:focus:hover { background:#fff; }[当input获得焦点且鼠标悬停在input上才获得该样式]
E:lang(c) 匹配lang属性等于c的E元素 q:lang(sv) { quotes: “\201D” “\201D” “\2019″ “\2019″; }
CSS3界面相关伪类
E:enabled 匹配表单中激活的元素【ie9+】 input[type="text"]:enabled { background:#ff0;}
E:disabled 匹配表单中禁用的元素【ie9+】 input[type="text"]:disabled { background:#ddd;}
E:checked 匹配表单中被选中的radio(单选框)或checkbox(复选框)元【目前只有Opera支持】 input[type="text"]:disabled { background:#ddd;}
E::selection 匹配用户当前选中的元素【火狐样式单独写;且只能向 ::selection 选择器应用少量 CSS 属性:color、background、cursor 以及 outline】 ::selection { color:#ff0; background:#222; outline:#f00; }
::-moz-selection { color:#ff0; background:#222; outline:#f00; }
CSS3结构性伪类
E:root 匹配文档的根元素,在HTML文档,根元素是唯一html :root { background:#ccc; }
E:nth-child(n) 匹配其父元素的第n个子元素,第一个编号为1 p:nth-child(2) { color:#f00; }
E:nth-last-child(n) 匹配其父元素的倒数第n个子元素,最后一个编号为1 p:nth-last-child(2) { color:#f00; }
E:nth-of-type(n) 与:nth-child()作用类似,但仅匹配使用标签E的元素 p:nth-of-type(2) { color:#f00; }
E:nth-last-of-type(n) 与:nth-last-child() 作用类似,但仅匹配使用标签E的元素 p:nth-of-type(2) { color:#f00; }
E:first-child 匹配父元素的第一个子元素 p:first-child { font-style:italic; }
E:last-child 匹配父元素的最后一个子元素,等同于:nth-last-child(1)
E:first-of-type 匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
E:last-of-type 匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
E:only-child 匹配父元素下仅有的一个子元素。如果父级有多个子元素,那么样式不起作用
E:only-of-type 匹配父元素下使用E标签的唯一一个子元素,如果父级有多个标签为E的子元素,那么样式不起作用
E:empty 匹配一个不包含任何子元素标签为E的元素,【标签可省略】注意,文本节点也被看作子元素 :empty { background:#f00; }
CSS3反选伪类
E:not(s) 匹配不符合当前选择器的任何元素 :not(p) { border:1px solid #ccc; }
CSS3:target伪类
E:target 匹配文档中特定”id”点击后的效果[页面内部的锚链接指向的id]
  1. 伪元素选择器
选择器 含义 示例
E:first-line 匹配E元素的第一行 p:first-line { font-weight:bold; color;#600; }
E:first-letter 匹配E元素的第一个字母 .preamble:first-letter { font-size:1.5em; font-weight:bold; }
E:before 在E元素之前插入生成的内容 .cbb:before { content:”"; display:block;background:url(top.png) no-repeat 0 0; margin:0 0 0 -18px; }
E:after 在E元素之后插入生成的内容 a:link:after { content: ” (” attr(href) “) “; }
  • 常用选择器

1. :hover

1.1. 我们常用的锚链接(a:hover)鼠标悬停在链接上字体变色:

a:hover{color:#f00;text-decorate:none;}

1.2. :hover伪类不是a标签特有,几乎所有标签都有该伪类,且它的浏览器兼容­­性好。用:hover可以让一个区域在鼠标滑过显示不同的样式。

代码:
11
效果:1-2
2. :before /:after【注意:使用该类伪属性:必须写content:””;】
2.1.可以在清浮动起作用
2.2.制作对话框效果时对话框侧边的边角。
代码:
css代码:
ba-1
html代码:
ba-2
效果:
ba-3
2.3. 添加小图标,可以减少标签和类的使用。
代码:
ba-4
效果:
ba-5
这个例子中,使用伪属性:before和:after可以减少至少两个标签,两个类的编写。
2.4. 用content:"(" attr(href) ")" 获取锚链接指向的网址,即使链接改变不需要手动修改HTML页。
代码:
bq-7
效果:
ba-8
3. :first-child/:last-child
3.1. 比如在一个具有相同样式的一组元素里,第一个或最后一个元素与其它元素样式略有不同。(:first-child/:last-child用途类似,下面举例:first-child。)
代码:
2-1
效果:
2-2

【附】:CSS命名建议(从1.可读性和可维护性。2.易修改性。3.公共样式的复用性 三点出发考虑命名。)

  • 布局类:header, footer, container, main, content, aside, page, section
  • 包裹类:wrap, inner
  • 区块类:region, block, box
  • 结构类:hd, bd, ft, top, bottom, left, right, middle, col, row, grid, span
  • 列表类:list, item, field
  • 主次类:primary, secondary, sub, minor
  • 大小类:s, m, l, xl, large, small
  • 状态类:active, current, checked, hover, fail, success, warn, error, on, off
  • 导航类:nav, prev, back,next, breadcrumb, forward, indicator, paging, first, last
  • 交互类:tips, alert, modal, pop, panel, tabs, accordion, slide, scroll, overlay,
  • 星级类:rate, star
  • 分割类:group, seperate, divider
  • 等分类:full, half, third, quarter
  • 表格类:table, tr, td, cell, row
  • 图片类:img, thumbnail, original, album, gallery,logo
  • 语言类:cn, en
  • 论坛类:forum, bbs, topic, post
  • 方向类:up, down, left, right
  • 其他语义类:btn, close, ok, cancel, switch; link, title, info, intro, more, icon; form, label, search, contact, phone, date, email, user; view, loading,joinus,vote,tab,banner,hot... 
  1. 单词组合命名,用连字符”-(减号)”连接,单词组合体现模块功能或者是模块内容。如: .article-hd(文章头部);  .page-tt (页面标题)
  2. 特殊化class,可以采用前缀/后缀来命名。如: 用户页的页面标题用: . user -page-tt 。
  3. 对于公用样式,命名最好多体现其功能,如: sidebar/subnav/left-page… ,并降低其权重;对于相对稳定的样式,可以跟内容结合:如goods-name/goods-intro/user-info…。

CSS选择器HTML示例地址:
\\192.168.0.18\运维网络硬盘\y袁亮\p培训\前端文档临时存放\示例文件\CSS选择器示例

【前端技术文档】CSS3 Animation 动画属性

整 理:肖雅君、曹燕

时 间:2015-11-05

说 明:animation属性的介绍和简单的用法


一、兼容性

二、语法介绍

1 定义keyframes语法

1.1 语法

1.2 值和描述

2 调用动画语法

2.1 语法

2.2 属性值

3 属性值详解

3.1 animation-duration

3.2 animation-timing-function

3.3 animation-iteration-count

3.4 animation-direction

三、综合示例

 

 

Animation

一、兼容性

Chrome 13+、Firefox 5+、Safari 5.1+、Opera 12+、IE10+均支持animation

常用前缀:

Firefox:-moz

Safari 和 Chrome:-webkit

Opera :-o

 

二、语法介绍

1 定义keyframes语法

@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。

1.1 语法

@keyframes animation-name{keyframes-selector {css-styles;}}

1.2 值和描述

animation-name:(必需)指定要绑定到选择器的关键帧的名称,即动画的名称。

keyframes-selector:(必需)动画时长的百分比。

建议: 在CSS3中,我们以百分比来规定改变发生的时间,或者通过关键词“from”和”to”,等价于0%和100%,其中,0%是动画的开始时间。100%是动画的结束时间。

例如:

@keyframes colorchange {

0%   { background-color:#00f; /* from:blue */ }

25%  { background-color:#f00; /* red       */ }

50%  { background-color:#0f0; /* green     */ }

75%  { background-color:#f0f; /* purple    */ }

100% { background-color:#00f; /* to: blue  */ }

}

@-webkit-keyframes colorchange {

0%   { background-color: #00f; /* from:blue */ }

25%  { background-color: #f00; /* red       */ }

50%  { background-color: #0f0; /* green     */ }

75%  { background-color: #f0f; /* purple    */ }

100% { background-color: #00f; /* to: blue   */ }

}

解释:这个例子中定义了background-color这个属性。其中0%这可以用from关键字来代替,100%可以用to代替。即:

@keyframes colorchange {

from  { background-color: #00f; /* from: blue */ }

25%  { background-color: #f00; /* red         */ }

50%  { background-color: #0f0; /* green       */ }

75%  { background-color: #fF0f; /* purple     */ }

to  { background-color: #00fF; /* to: blue    */ }

}

2 调用动画语法

2.1 语法

animation:name duration timing-function delay iteration-count direction;

例:animation:changeColor 6s ease-in-out .2s infinite alternate;

2.2 属性值

animation属性是一个简写属性,用于设置动画的属性。

animation-name:该属性主要是用来调用@keyframes定义好的动画。

animation-duraton:动画指定需要多久完成,默认是0。

animation-timing-function:设置动画的速度曲线,默认是”ease”。

animation-delay: 设置在动画将启动之前经过的延迟间隔,默认是0。

animation-iteration-count:设置动画周期的播放次数,默认是1。

animation-direction:设置对象动画在循环中是否反向运动,默认是“normal”。

 

3 属性值详解

3.1 animation-duration

指定动画需要多久完成。请始终规定animation-duration属性,否则时长为0,就不会播放动画了。

3.2 animation-timing-function

animation-timing-function值

ease:默认值,元素样式从初始状态过渡到终止状态时速度由快到慢,逐渐减慢。

liner:元素样式从初始状态过渡到终止状态速度是恒速。

ease-in:元素样式从初始状态过渡到终止状态时,速度越来越快,呈一种加速状态。常称这种状态为渐显效果。

ease-out:元素状态从初始状态过渡到终止状态时,速度越来越缦。呈一种减速状态。常称这种状态为渐隐效果。

ease-in-out:元素样式从初始状态到终止状态时,先加速再减速。常称这种效果为渐显渐隐效果。

3.3 animation-iteration-count

指定动画的播放次数,取值可以是:

n:即具体的数字,表示具体的播放次数;

infinite:表示无数次播放。

3.4 animation-direction

有四个值:

normal:默认,从0%到100%;

reverse:动画从100%执行到0%;

alternate:动画在0%到100%之间往复执行;

alternate-reverse与alternate一致,不过是从100%开始。

 

三、综合示例

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>animation</title>

<style>

@keyframes slide{

0%   {background:#f00; left:0px; top:0px;} /* from: red */

100%  {background:#fefe00; left:200px; top:0px;} /* to: yellow */

}

@-moz-keyframes slide{

0%   {background:#f00; left:0px; top:0px;}/* from: red */

100%  {background:#fefe00; left:200px; top:0px;} /* to: yellow */

}

@-webkit-keyframes slide{

0%   {background:#f00; left:0px; top:0px;}/* from: red */

100%  {background:#fefe00; left:200px; top:0px;} /* to: yellow */

}

@-o-keyframes slide{

0%   {background:#f00; left:0px; top:0px;}/* from: red */

100%  {background:#fefe00; left:200px; top:0px;} /* to: yellow */

}

.box{

width:100px;

height:100px;

background:red;

position:relative;

animation:slide 5s linear 2s infinite alternate;

/* Firefox: */

-moz-animation:slide 5s linear 2s infinite alternate;

/* Safari and Chrome: */

-webkit-animation:slide 5s linear 2s infinite alternate;

/* Opera: */

-o-animation:slide 5s linear 2s infinite alternate;

}

</style>

</head>

<body>

<div class="box"></div>

</body>

</html>

说明:这段代码首先用@keyframes定义了一个名称为“slide”的动画,效果是使一个背景为红色的元素从左向右滑动200px,同时背景色变为黄色;然后将这个动画效果和box类绑定,使这个动画:先延迟2s、然后无限循环播放此动画、5s完成一次动画、每次动画都以匀速演示、奇数次动画正向播放、偶数次动画逆向播放。

 

【前端技术文档】CSS3 Transition 过渡属性

整    理:晋哲、徐秀

时    间:2015-11-05

说    明:Transition属性的介绍和简单的用法


一、定义

允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标指针浮动到元素上时、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值。

二、语法

transition: property duration timing-function delay;
需要注意的一点:transition-duration与transition-delay的值都是时间,所以要区分它们在连写中的位置,一般浏览器会根据先后顺序决定,第一个可以解析为时间的值为transition-duration,第二个为transition-delay。
transition-pic1
1、属性名称:transition-property
2、过渡时间:transition-duration
3、变换速率:transition-timing-function
4、开始时间:transition-delay

三、属性

1、属性名称:transition-property
描述:规定设置过渡效果的 CSS 属性的名称。

其属性值:
none:没有属性会获得过渡效果。
all:所有属性都将获得过渡效果。(默认值)
[property]:定义应用过渡效果的元素属性名称,多个属性以逗号分隔
注:[property]是可以指定元素的某个属性值。其对应的类型可以是:color、值为数字的属性、transform属性等等。

2、过渡时间:transition-duration
描述:规定完成过渡效果需要花费的时间,以秒或毫秒计。默认值是 0,意味着不会有效果。

3、变换速率:transition-timing-function
描述:规定速度效果的速度曲线。

其属性值:
linear:匀速
ease:逐渐变快,再逐渐变慢(默认)
ease-in:加速
ease-out:减速
ease-in-out:加速然后减速
cubic-bezier(x1,y1,x2,y2):贝塞尔曲线,自定义一个时间曲线

transition-pic2

4、开始时间:transition-delay
描述:规定在过渡效果开始之前需要等待的时间,以秒或毫秒计,默认值是 0,意味着立即执行,没有延迟。

四、浏览器的兼容性

Internet Explorer 9 以及更早版本的浏览器不支持 transition 属性。

为兼容各大现代浏览器,在应用transition时需要加上各自的前缀,如:
-webkit-transition: all 2s linear;
-moz-transition: all 2s linear;
-o-transition: all 2s linear;
transition: all 2s linear;

五、DEMO示例

实现效果:鼠标移上去时,宽度逐渐增加、改变背景色、方形变圆形,降低透明度。
<!-- HTML -->
<div class="box"></div>

<!-- CSS -->
.box{
    width: 100px;
    height: 100px;
    background: #000;
    -webkit-transition: all 2s;
    -moz-transition: all 2s;
    -o-transition: all 2s;
    transition: all 2s;
}
.box:hover{
    width: 300px;
    height: 300px;
    background: #f00;
    border-radius: 50%;
    opacity: .5;
}

【svn入门】- 1、初次使用

编  写:袁  亮
时  间:2015-11-02
说  明:从未接触过svn的人,5分钟内学会简单使用svn

一、获取svn地址
1、发送邮件到cjy@corp-ci.com,告知项目名,申请获取svn地址
例如:http://****/demo/
2、如果没有svn账号的,也一并邮件中申请
二、windows中开始使用
1、下载TortoiseSVN安装
2、在需要使用svn的文件目录上右击,选择SVN CheckOut

1

2

3、从svn控制中心,更新最新的程序到本地

3

4、新增的文件,添加到版本库中

4

5、将改动提交到svn控制中心(新增或者修改都需要做这步操作)

5

6

三、linux种开始使用
1、进入到项目开发目录 cd demo/
2、从版本库中checkout下来

1

3、从svn控制中心更新最新版本

2

3、将新文件加入到svn中
3
4、将改动过的内容提交到svn版本控制中心

4

四、常用命令使用
1、【svn入门】- 2、常用命令及练习

2、pdf版本下载:【svn入门】- 初次使用