转发自0101后花园

CSS3中的动画功能分为Transitions和Animations功能,这两种功能都可以通过改变CSS中的属性值来产生动画效果。

一.Transitions

语法:transitions: property duration timing-function

  • property: 表示对哪个属性进行平滑过渡(可设置为all,则所有属性值变化时均产生动画效果)
  • duration: 表示在多长时间内完成属性值的平滑过渡
  • timing-function: 表示通过什么方法来进行平滑过渡(具体值下面详细介绍)

样例代码:

transitions: background-color 1s linear;

可同时设置多个属性值:

样例代码:

transitions: background-color 1s linear, color 1s linear, width 1s linear;

可同时设置所有属性值:

样例代码:

transitions: all 1s linear;

二 .Animations

语法:animations: name duration timing-function iteration-count;

  • name: 关键帧集合名(通过此名创建关键帧的集合,见下面样例代码)
  • duration: 表示在多长时间内完成属性值的平滑过渡
  • timing-function: 表示通过什么方法来进行平滑过渡(具体值下面详细介绍)
  • iteration-count: 迭代循环次数,可设置为具体数值,或者设置为infinite进行无限循环,默认为1

样例代码:

.box {
background-color: red;
-webkit-animation: mycolor 4s linear infinite;
}
@-webkit-keyframes mycolor {
0% {
background-color: red;
}
40% {
background-color: darkblue;
}
70% {
background-color: yellow;
}
100% {
background-color: green;
}
}

三.实现动画的方法

  • linear                      在动画开始时到结束时以同样的速度进行改变
  • ease-in                   动画开始时速度很慢,然后速度沿曲线值加速
  • ease-out                 动画开始时速度很快,然后速度沿曲线值减速
  • ease                        动画开始速度很慢,然后速度沿曲线值加速,然后再沿曲线值减速
  • ease-in-out            同ease

注:浏览器支持性不做介绍,具体使用时请做具体测试,本人秉着早晚所有浏览器都会支持的态度写此文。

本条目发布于2013年11月19日。属于CSS3分类,被贴了 animationseasetransitions动画 标签。作者是听心_cy

CSS3属性transform详解之(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理,本文将对此做详细介绍。

一.旋转 rotate

用法:transform: rotate(45deg);

共一个参数“角度”,单位deg为度的意思,正数为顺时针旋转,负数为逆时针旋转,上述代码作用是顺时针旋转45度。

二.缩放 scale

用法:transform: scale(0.5)  或者  transform: scale(0.5, 2);

参数表示缩放倍数;

  • 一个参数时:表示水平和垂直同时缩放该倍率
  • 两个参数时:第一个参数指定水平方向的缩放倍率,第二个参数指定垂直方向的缩放倍率。

三.倾斜 skew

用法:transform: skew(30deg)  或者 transform: skew(30deg, 30deg);

参数表示倾斜角度,单位deg

  • 一个参数时:表示水平方向的倾斜角度;
  • 两个参数时:第一个参数表示水平方向的倾斜角度,第二个参数表示垂直方向的倾斜角度。

关于skew倾斜角度的计算方式表面上看并不是那么直观,这里借鉴某大拿绘制的图举例说明一下:

首先需要说明的是skew的默认原点transform-origin是这个物件的中心点

skewX(30deg) 如下图:

skewY(10deg) 如下图:

skew(30deg, 10deg) 如下图:

我当初就是看到此图瞬间理解的。

四.移动 translate

用法:transform: translate(45px)  或者 transform: skew(45px, 150px);

参数表示移动距离,单位px,

  • 一个参数时:表示水平方向的移动距离;
  • 两个参数时:第一个参数表示水平方向的移动距离,第二个参数表示垂直方向的移动距离。

五.基准点 transform-origin

在使用transform方法进行文字或图像的变形时,是以元素的中心点为基准点进行的。使用transform-origin属性,可以改变变形的基准点。

用法:transform-origin: 10px 10px;

共两个参数,表示相对左上角原点的距离,单位px,第一个参数表示相对左上角原点水平方向的距离,第二个参数表示相对左上角原点垂直方向的距离;

两个参数除了可以设置为具体的像素值,其中第一个参数可以指定为left、center、right,第二个参数可以指定为top、center、bottom。

六.多方法组合变形

上面我们介绍了使用transform对元素进行旋转、缩放、倾斜、移动的方法,这里讲介绍综合使用这几个方法来对一个元素进行多重变形。

用法:transform: rotate(45deg) scale(0.5) skew(30deg, 30deg) translate(100px, 100px);

这四种变形方法顺序可以随意,但不同的顺序导致变形结果不同,原因是变形的顺序是从左到右依次进行,这个用法中的执行顺序为1.rotate  2.scalse  3.skew  4.translate

注:浏览器支持性不做介绍,具体使用时请做具体测试,本人秉着早晚所有浏览器都会支持的态度写此文。

本条目发布于2013年11月19日。属于CSS3分类,被贴了 rotatescaleskewtransformtransform-origintranslate 标签。作者是听心_cy

CSS3属性border-image详解(边框图片)

border-image一共有4项参数,本文将对这4项参数依次讲解及举例说明,为了方便理解,先介绍最常用的使用方式。

语法:border-image: url(bbs0101.png) A B C D;  第一个参数url就是背景图片路径,不做过多解释,其次4个参数ABCD表示4个像素值,不需要带单位,默认为px,同时也可以设置为百分比,百分比是 针对背景图片计算的,比如图片宽100px,A=20%=100px*20%=20px,依次代表距离图片上边缘、右边缘、下边缘、左边缘的距离,如图所 示:

border-image详解

当设置好ABCD四个值之后,相当于按照这4个值对图片切了4刀,形成一个九宫格,此时我们需要按照以下两步分析border-image的工作原理:

  1. 首先分离出left-top、right-top、left-bottom、right-bottom这四块图片分别对应放到盒子border的四个角上,同时按照盒子border四个角的尺寸进行缩放直至铺满
  2. 然后分离出每条边中间的区域即A、B、C、D所在的四个区域,分别放到盒子border的对应4个位置上,同时按照border对应区域的尺寸进行缩放直至铺满

背景图如图所示:此图尺寸为90*90 中间所有小菱形等尺寸。

源背景图片

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30 30 30 30;
}
<div class="box5"></div>

样例图片:

border-image

此时可以说此种情况(border-image: url(bbs0101.png) A B C D;)的border-image已经完成渲染工作,不过这里的第二步中采用的是拉伸方式(默认方式:stretch)铺满边框,我们还可以手动设置成 repeat以按照平铺方式渲染,如下:

语法:border-image: url(bbs0101.png) A B C D repeat repeat;

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30 30 30 30 repeat repeat;
}
<div class="box5"></div>

样例图片:

border-image:repeat

这段样式中总共写了2个repeat,第一个repeat定义上边(A区域)和下边(C区域)是否进行水平重复,第二个repeat定义左边(D区域)和右边(B区域)是否进行垂直重复,举例如下:

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30 30 30 30 repeat stretch;
}

样例图片:

border-image

以上的样例中边框宽度是通过设置border:20;来完成的,这里需要声明一下,如果想使用border-image属性则border必须存在 且border-width必须要大于0,但是是不是只能border的尺寸来控制border-image的尺寸呢,我这么问当然就不是了,这里再介绍 border-image的最后一个参数W

语法:border-image: url(bbs0101.png) A B C D/W repeat repeat;

W为border-image各边框宽度,设置时需要带上单位px,即使设置了W,也不能设置border-width=0!

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30 30 30 30/W repeat stretch;
}

样例图片:从上到下依次为W=10px、W=20px、W=30px

W=10px

W=20px

W=30px

以上已经将border-image的所有参数都讲解了一下,以下将对一些特殊情况以及一些小技巧进行一下举例说明:

一.当只设置url一个属性的时候,A=C=图片height,B=D=图片width

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png);
}

样例图片:

border-image

二.当只设置一个切割尺寸P的时候,A=B=C=D=P

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30;
}

样例图片:

border-image

三.当只设置一个重复方式的时候,表示四条边框重复方式相同

样例代码:

.box5 {
border: 20px;
width: 60px;
height: 60px;
border-image: url(images/border-image.png) 30 repeat;
}

样例图片:

border-image:repeat.

此外针对重复方式还有一个属性就是round,意思是平铺,据说和repeat是有区别的,但是目前没有浏览器体现出round和repeat的区别,所以暂不考虑round属性。

注:浏览器支持性不做介绍,具体使用时请做具体测试,本人秉着早晚所有浏览器都会支持的态度写此文。

一个小小的border-image属性,原本以为几句话可以说清楚,没想到写了满满一页还觉得说的不够详细,以后慢慢完善吧,今天实在是不想写了,如果有一定基础的你想必能看懂吧,O(∩_∩)O哈哈~

本条目发布于2013年11月19日。属于CSS3分类,被贴了 border-image 标签。作者是听心_cy

CSS3属性:background-clip详解(设置背景图显示区域)

背景图片默认显示区域包括border、padding、content区域,但是可以改变background-clip值设置显示区域不包括border区域或者只显示content区域。

样例代码:

.box1 {
    background-clip: border-box;  /* 默认 */
}
.box2 {
    background-clip: padding-box;
}
.box3 {
    background-clip: content-box;
}

样例图片:

background-clip详解

此时发现一个问题,设置了background-clip之后只是改变了背景图片显示区域,但是显示区域现实的图片并不是从图片左上角开始绘制的,如果想要让背景图片在显示区域从左上角开始显示则需要配合background-origin属性使用:

样例代码:

.box1 {
    background-clip: border-box; /* 默认 */
    background-origin: border-box;
}
.box2 {
    background-clip: padding-box;
    background-origin: padding-box; /* 默认 */
}
.box3 {
    background-clip: content-box;
    background-origin: content-box;
}

样例图片:

background-clip,background-origin

本条目发布于2013年11月18日。属于CSS3分类,被贴了 background-clipbackground-origin 标签。作者是听心_cy

CSS3属性:background-origin详解(设置背景图绘制起始点)

在绘制背景图片时,浏览器默认是从padding区域左上角开始绘制,但是可以利用background-origin属性来指定从border左上角开始绘制或者从content区域左上角开始绘制。

样例代码:

.box1 {
    background-origin: border-box;
}
.box2 {
   background-origin: padding-box; /* 默认 */
}
.box3 {
   background-origin: content-box;
}

样例图片:

background-origin详解

CSS3特性 盒模型 动画的更多相关文章

  1. CSS3弹性盒模型,Flex布局教程

    布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现. CSS3中引入flex的弹性盒模型 ...

  2. CSS3 完善盒模型

    CSS3 改善了传统盒模型结构,增强了盒子构成要素的功能,扩展了盒模型显示的方式. 改善结构:为盒子新增轮廓区: 增强功能:内容区增强 CSS 自动添加内容功能,增强内容移除.换行处理:允许多重定义背 ...

  3. CSS3.0盒模型display:box;的使用

    CSS3.0盒模型display:-webkit-box;的使用 box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典的一个布局应用就是布局的垂 ...

  4. CSS3弹性盒模型flexbox布局基础版

    原文链接:http://caibaojian.com/using-flexbox.html 最近看了社区上的一些关于flexbox的很多文章,感觉都没有我这篇文章实在,最重要的兼容性问题好多人都没有提 ...

  5. css3基础教程:CSS3弹性盒模型

    今天给大家分享一篇关于CSS3基础教程 文章,主要是讲CSS3弹性盒模型.弹性布局的主要思想是让容器有能力来改变项目的宽度和高度,以填满可用空间(主要是为了容纳所有类型的显示设备和屏幕尺寸)的能力. ...

  6. CSS3弹性盒模型布局模块介绍

    来源:Robert’s talk原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-in ...

  7. css3弹性盒模型flex快速入门与上手(align-content与align-items)

    接着上文css3弹性盒模型flex快速入门与上手1继续,上文还剩下两个父容器的属性align-items和align-content. 一.align-content:多行的副轴对齐方式 含义 多行的 ...

  8. css和css3弹性盒模型实现元素宽度(高度)自适应

    一.css实现左侧宽度固定右侧宽度自适应 1.定位 <!DOCTYPE html> <html lang="en"> <head> <me ...

  9. CSS3使用盒模型实现三栏布局

    本篇文章由:http://xinpure.com/css3-box-model-to-implement-a-three-column-layout/ 使用 Position 绝对定位也是可以实现三栏 ...

随机推荐

  1. noi 2728 摘花生

    题目链接: 很像上一题,加上自己本身,选最优值. http://noi.openjudge.cn/ch0206/2728/ http://paste.ubuntu.com/23402493/

  2. 浅谈文本溢出省略号代表修剪text-overflow

    一.示例 图片显示: HTML结构: CSS样式: 注意: CSS3 text-overflow 属性规定当文本溢出包含元素时发生的事情,其中 所有浏览器都支持 white-space 属性.  示例 ...

  3. winform基础,主要控件简单介绍,以及小练习

    WinForm - C/S B/S 客户端应用程序 - 是需要安装在用户电脑上才可以使用的程序特点:不需要联网也可以打开使用部分功能但是现在的情况是许多功能依然需要互联网的支持 代码部分在用户电脑上执 ...

  4. python 注意事项

    常见错误 #4:  不理解Python的作用域 Python是基于 LEGB 来进行作用于解析的, LEGB 是 Local, Enclosing, Global, Built-in 的缩写.看起来“ ...

  5. 【转载】C++ 与“类”有关的注意事项总结(十二):按成员初始化 与 按成员赋值

    原文:C++ 与"类"有关的注意事项总结(十二):按成员初始化 与 按成员赋值 一.按成员初始化(与构造函数和拷贝构造函数有关) 用一个类对象初始化另一个类对象,比如: Accou ...

  6. 为ssh增加选项

    在使用ssh的时候,可以看到ssh有很多功能,什么-o , -e等等.如下图 需求,想要给ssh增加一个参数的功能.比如说我现在的需求就是执行ssh的时候可以增加一个选项,给我每次ssh的操作搭一个标 ...

  7. Redis - pipelining(管道)

    客户端向服务器发送一个查询请求,并监听 socket 返回,等待服务器响应.通常是阻塞模式,在收到服务器响应之前是挂起的,不能继续发送请求. 可以使用管道来改善这种情况.在使用管道的情况下,客户端可以 ...

  8. Hibernate <一级缓存>

    Hibernate缓存分为三级: 一级缓存:基于事务级别(内存)的缓存,也可以成为session级别缓存 二级缓存:依赖于第三方,当请求一个对象时,先在缓存里面查找,如果没有就执行查询语句 查询缓存: ...

  9. codeforces 446A DZY Loves Sequences

    vjudge 上题目链接:codeforces 446A 大意是说最多可以修改数列中的一个数,求最长严格递增的连续子序列长度. 其实就是个 dp 的思想,想好思路后交上去没想到一直 wa 在第二个测试 ...

  10. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...