css3新特性+less试验(2)——transform
来源:互联网 发布:网络电视直播回看软件 编辑:程序博客网 时间:2024/05/16 09:58
本次试验将深入探索CSS3的新特性——transform(变形)。
实验对象:transform
transform:顾名思义,就是【变形】的意思,在CSS3中的变形有以下几种:旋转 (rotate) | 扭曲 (skew) | 缩放 (scale) | 移动 (translate) | 矩阵变形 (matrix),注意,不同于gradient是background属性的值,transform本身是一个属性。
语法
transform:transform: none | rotate | scale | skew | translate |matrix;
试验
1、rotate [旋转]
用法
transform:rotate(<angle>)
html
<div class="box1"></div> <div class="box2"></div> <div class="box3"></div> <div class="box4"></div> <div class="box5"></div> <div class="box6"></div>
less
.rotate(@angle) { transform: rotate(@angle);}.box { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left;;}.box1 { .box; .rotate(20deg);}.box2 { .box; .rotate(45deg);}.box3 { .box; .rotate(90deg);}.box4 { .box; .rotate(180deg);}.box5 { .box; .rotate(270deg);}.box6 { .box; .rotate(360deg);}
CSS
.box { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left;}.box1 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(20deg);}.box2 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(45deg);}.box3 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(90deg);}.box4 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(180deg);}.box5 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(270deg);}.box6 { width: 100px; height: 100px; margin-left: 100px; margin-top: 100px; border-top: 4px solid red; background: black; float: left; transform: rotate(360deg);}
效果
从左至右依次为box1~box6,我们可以看出,在CSS中,所有角度值的变化都如图片中下半部分所示,请注意体会,如果不清楚,请看下图,我加入了单位格子为100*100的网格线,还有边框为4PX的外层DIV,并取消各个box的margin值以后的效果:
可以看到,实际上,rotate的旋转是围绕着一个圆心的,而默认不设置圆心位置的话,圆心就是旋转元素自身的几何中心,即(50%,50%),上图是我将圆心设置为(0%,0%)后的效果。
看看我的代码(less中的代码):
.rotate(@angle) { transform: rotate(@angle); transform-origin:0% 0%; //这里就是设置圆心的代码}
你可以自己尝试一下设置不同的圆心效果有何不同哦!
2 、skew 【扭曲】
用法
transform:skew(<angle> [, <angle>]);第一个参数为x轴的斜切角度,第二个参数为Y轴斜切角度,也可以分别来写:transform:skewX(<angle>); | transform:skewY(<angle>);
HTML
<div class="content"> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> <div class="box4"></div> <div class="box5"></div> <div class="box6"></div></div>
less
.skew(@x_angle:0;@y_angle:0){ transform: skew(@x_angle,@y_angle);}body{ background: url("bg.png") repeat;}.content { position: relative; margin-left: 100px; margin-top: 100px; width: 1400px; height: 800px; border: 4px solid #ffff00;}.box { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color:#ffffff;}.box1{ .box; .skew(30deg);}.box2{ .box; .skew(0deg,30deg);}.box3{ .box; .skew(30deg,30deg);}.box4{ .box; .skew(50deg); }.box5{ .box; .skew(130deg);}.box6{ .box; .skew(170deg);}
css
body { background: url("bg.png") repeat;}.content { position: relative; margin-left: 100px; margin-top: 100px; width: 1400px; height: 800px; border: 4px solid #ffff00;}.box { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff;}.box1 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(30deg, 0);}.box2 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(0deg, 30deg);}.box3 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(30deg, 30deg);}.box4 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(50deg, 0);}.box5 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(130deg, 0);}.box6 { width: 100px; height: 100px; border-top: 4px solid red; background: black; margin-right: 100px; float: left; color: #ffffff; transform: skew(170deg, 0);}
效果
从左至右分别是box1~box6,我们可以看出,box4与box5,分别在X轴斜切角度为50deg和130deg,而它们相对于Y轴对称,我们可以由此得出:skew的角度范围为0~180deg,不能为90deg,为什么不能为90deg呢,你可以试试就知道了。
同样滴,斜切也是有参照圆心的,依旧是transform-origin。这个大家可以自己试验,之后的实验中再不说明。
3、translate [平移]
用法
transform:translate(<length> [, <length>]);第一个参数为x轴的平移距离,第二个参数为Y轴平移距离,也可以分别来写:transform:translateX(<length>); | transform:translateY(<length>);
这个比较简单,没什么特别说明的,就不演示代码了
4、scale[缩放]
用法
transform:scale(<number> [, <number>]);第一个参数为x轴的缩放倍数,第二个参数为Y轴缩放倍数,均支持小数,也可以分别来写:transform:scaleX(<number>); | transform:scaleY(<number>);
这个也比较简单,没什么特别说明的,就不演示代码了
5、matrix[矩阵变形]
用法
matrix(<number>,<number>,<number>,<number>,<number>,<number>):以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵
由于本人数学是渣渣,对于矩阵也是不甚了解,所以这里不知如何下手,如果有知道的大神能制作一个关于此的教程,请劳烦第一时间告知一下文章地址。
- css3新特性+less试验(2)——transform
- CSS3新特性+less实验(3)——transition
- CSS3新特性+less实验——animation
- 浅谈CSS3新特性——transform: rotate(旋转) | scale(缩放) | translate(移动) | skew(倾斜)
- css3—transition、transform
- ——CSS3新特性(阴影、动画、渐变)
- CSS3 Transform——transform-origin
- CSS3 Transform——transform-origin
- CSS3新特性(一)
- 浅谈CSS3新特性——动画animation
- 浅谈CSS3新特性——线性渐变linear-gradient
- CSS3+less实验(1)——gradient
- transform属性——css3变形效果2D
- CSS3笔记2— transform旋转、缩放、倾斜、移动
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- CSS3形变——transform与transform-origin画时钟
- java的访问权限修饰符
- StringTokenizer和Split
- addEventListener
- 使用PHP制作 简易员工管理系统之一(创建数据库)
- 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
- css3新特性+less试验(2)——transform
- securecrt 中文乱码
- Matplotlib修改配置文件
- Centos mosquitto1.4.2 编译安装
- 系统级触发器
- 文本特征提取方法研究
- iOS开发实战:如何将非ARC的项目转换成ARC项目
- sql中select语句详解及用途
- 数据库完整性约束