CSS3新增特性详解(二)
上篇博文主要介绍了CSS3新增特性中的静态特性,比如新的选择器、多背景图、阴影、渐变等。本文主要介绍CSS3中新增的动态特性,如过度、动画、变形等。
transitian:
-webkit-transition:all 0.5s linear 0.3s;
过度效果,习惯上也叫做渐变。只不过这个渐变是指为动态效果加上一个可视的过程,要与前文中颜色的渐变区分开。
这里还是别忘了在上文中提到的前缀问题,示例中为了节省时间所以只在加了测试用浏览器的前缀。
transition:共四个参数:
1.渐变属性,包括none:停止渐变,all:默认值,元素产生任何属性值变化时都执行渐变效果,通常情况下都用all, indent:指定元素的某一属性值;
2.渐变过程的持续时间,默认值为0;
3.变化的速率,ease:逐渐变慢,linear:匀速,ease-in:加速,ease-out:减速,ease-in-out:先加速后减速,cubic-bezier:自定义;
每个属性都可以设置其具体的贝塞尔曲线值,不过一般情况下用linear匀速就足够了,太另类显得非主流。
4.变化的延迟时间。
之前在讲CSS伪类的那篇文章中已经贴过渐变示例的GIF了。
先写一段代码如下:
div{
width: 100px;
height: 100px;
background-color: red;
}
div:hover{
background-color: blue;
}
效果:

加入渐变:
div{
width: 100px;
height: 100px;
background-color: red;
-webkit-transition:all 0.5s linear 0.3s;
}
div:hover{
background-color: blue;
}
效果:

这里要注意的是transition不仅可以对颜色的改变产生过度效果,也可以对尺寸、位置等等的属性均带来过度效果。

keyframes:
CSS3自带的动画特性,可以不借助JS来完成一些简单的动画效果。但是这里不得不说的是,keyframes的用处并不多,稍微复杂一点的动画用JS搭配CSS3的过度效果总是最理想的。
@-webkit-keyframes divMove{
from{
top:;
left:;
}
to{
top:200px;
left: 200px;
}
}
div{
width: 100px;
height: 100px;
-webkit-border-radius: 50px;
position: absolute;
background-color: forestgreen;
-webkit-animation:divMove 2s infinite linear;
}
首先创建动画规则,最开头用@符号,后接浏览器前缀,后接keyframes,之后是自己定的动画名称。from表示起始状态,to表示结束状态,大括号内写CSS样式。
定义完动画规则后,在你想要加入该动画的元素上添加animation。共有4个参数:1.自定义的动画名称 2.动画完成所用时间 3.infinite表示循环播放动画 4.变化速率,同transition。
效果:

定义动画规则时也可以这样写:
0%{
background-color: red;
}
25%{
background-color: blue;
}
50%{
background-color: green;
}
75%{
background-color: yellow;
}
100%{
background-color: #8a2be2;
}
这样写法是将动画过程按想要的时间百分比细分,上例中from对应0%,to对应100%。
总之CSS3中的动画特性由于其局限性较大,在实际中运用并不多。
transform:
变形,它包括五种变换方式:

div{
-webkit-transform:rotate(30deg);
}
其中rotate后的括号里填旋转的度数,单位:角度(deg)。若值为正则顺时针旋转,为负则逆时针旋转。
效果:

这里还要提一点就是transform-origin(X,Y),它是用来定义元素基点,也就是元素变换的基准点,这旋转这个例子中也就是说绕着哪个点旋转。
X,Y可以是具体的值,也可以是百分比,也可以是top center bottom left right这样的参数。在未设置的情况下,默认为元素的几何中心。
translate移动:
黑框中有一绿色方块

移动:
#demo{
width: 100px;
height:100px;
background-color: seagreen;
-webkit-transform:translate(150px,0)
}
效果:

还可以写成translateX(x) translateY(y),表示只横向或纵向移动,括号里仅有一个参数。
scale缩放:
写法:scale(X,Y),其中X,Y表示横、纵向缩放倍数,基值为1。若大于1表示放大,小于1表示缩小,如scale(0.8,2.5)表示横向缩小到0.8倍,纵向放大到2.5倍。
与translate类似,缩放也可以单方向:scaleX(x)&scaleY(y)。
skew扭曲:
写法:skew(X,Y),X表示水平方向扭曲角度,Y表示垂直方向扭曲角度。如:skew(30deg,10deg)。同上,单方向扭曲:skewX(x)&skewY(y)。
#demo{
width: 100px;
height:100px;
background-color: seagreen;
-webkit-transform:skewX(30deg);
}

这种东西怎么能用在网页上呢?看的博主心理都扭曲了。
感谢您的浏览,希望能对您有所帮助。
CSS3新增特性详解(二)的更多相关文章
- CSS3新增特性详解(一)
注:由于CSS3的新特性较多,所以分两篇博文来说明.第一篇主要包括新的选择器.文字及块阴影.多背景图.颜色渐变.圆角等.第二篇主要细说CSS3的各种动画效果,如:旋转.移动.缩放等,还包括图标字体的应 ...
- C#各个版本中的新增特性详解
序言 自从2000年初期发布以来,c#编程语言不断的得到改进,使我们能够更加清晰的编写代码,也更加容易维护我们的代码,增强的功能已经从1.0搞到啦7.0甚至7.1,每一次改过都伴随着.NET Fram ...
- C#各个版本中的新增特性详解【转】
序言 自从2000年初期发布以来,c#编程语言不断的得到改进,使我们能够更加清晰的编写代码,也更加容易维护我们的代码,增强的功能已经从1.0搞到啦7.0甚至7.1,每一次改过都伴随着.NET Fram ...
- 【PHP系列】PHP 7.0新增特性详解
开始介绍PHP7.0新特性,具体的可以参照官网的介绍,我来挑一些给大家详细讲解下 http://php.net/manual/en/migration70.new-features.php 1. ?? ...
- MySQL 8.0新增特性详解【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- PHP 7.0新增特性详解
https://www.cnblogs.com/riverdubu/archive/2017/03/22/6434705.html 开始介绍PHP7.0新特性,具体的可以参照官网的介绍,我来挑一些给大 ...
- CSS3新特性详解
本文讲解CSS3相关实用知识点 CSS3相关实用知识点目录 边框设置 颜色设置 背景设置 渐变使用 超出文本设置 阴影设置 CSS3变换设置 过渡设置 动画设置 多列布局 BoxSizing设置 弹性 ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
随机推荐
- Linux通过docker安装运行酷Q--用QQ骰子君进行跑团
Linux通过docker安装运行酷Q 文:铁乐与猫 需求:和小伙伴周末进行愉快的TRPG跑团,需要在QQ讨论组上加了qq小号后,将qq小号用酷Q配合投骰的应用变成骰子君. 限制:我个人的云计算服务器 ...
- Session攻击
1.简介 Session对于Web应用无疑是最重要的,也是最复杂的.对于web应用程序来说,加强安全性的第一条原则就是 – 不要信任来自客户端的数据,一定要进行数据验证以及过滤,才能在程序中使用,进而 ...
- Hadoop HA 高可用集群的搭建
hadoop部署服务器 系统 主机名 IP centos6.9 hadoop01 192.168.72.21 centos6.9 hadoop02 192.168.72.22 centos6.9 ha ...
- FreeMarker标签使用
FreeMarker标签使用 模板技术在现代的软件开发中有着重要的地位,主要用于view层的展示,freemarker是比较流行的一种. 一.FreeMarker模板文件主要有4个部分组成 ①文本,直 ...
- ubuntu16.04安装visual-studio-code
微软主页的安装说明,https://code.visualstudio.com/docs/setup/linux 有一点英语基础就能看懂,写的很好,一切以官方文档为主 方法一:可以使用umake ...
- 【CF163E 】e-Government
题目 两个\(log\)的树状数组套树剖? 我们对于给出的\(n\)个模式串建立\(AC\)自动机,之后对于每一个询问串直接丢上去匹配 如果这里是暴力的话,我们直接一路跳\(fail\)累加作为结束位 ...
- 【洛谷】【动态规划(二维)】P1508 Likecloud-吃、吃、吃
[题目描述:] 正处在某一特定时期之中的李大水牛由于消化系统比较发达,最近一直处在饥饿的状态中.某日上课,正当他饿得头昏眼花之时,眼前突然闪现出了一个n*m(n and m<=200)的矩型的巨 ...
- vue 项目项目启动时由于EsLint代码校验报错
今天在编写好vue项目代码时,在命令行输入npm start的时候出现了如下图所示的一大堆错误: 在网上查找资料说是缺少EsLint配置文件的问题,最终找到一篇由 hahazexia 编写的一篇博客文 ...
- 【转】使用URL SCHEME启动天猫客户端并跳转到某个商品页面的方法
在项目中遇到了这样一个需求:让用户在手机应用中,点击一个天猫的商品链接(知道商品在PC浏览器里的地址),直接启动天猫的客户端并显示这个商品.以前曾经实现过类似的功能,不过那次是淘宝的商品,天猫和淘宝的 ...
- Hive学习之路 (十三)Hive分析窗口函数(一) SUM,AVG,MIN,MAX
数据准备 数据格式 cookie1,, cookie1,, cookie1,, cookie1,, cookie1,, cookie1,, cookie1,, 创建数据库及表 create datab ...