CSS自学笔记(13):CSS3 2D/3D转换
CSS3中新增了对元素进行2D和3D的转换效果,这样可以是开发人员很方便的做出视觉效果更好的网页来。
通过CSS3中属性的定义,我们可以对元素进行移动、缩放、拉伸、旋转等等,可以通过定义transform属性来实现转换效果。
浏览器支持
属性 | 浏览器支持 | ||||
---|---|---|---|---|---|
2D transform | IE | Firefox | Chrome(-webkit-) | Safari(-webkit-) | Opera |
3D transform | IE | Firefox | Chrome(-webkit-) | Safari(-webkit-) |
目前的主浏览器都已经支持2D效果的transform属性,3D效果的transform只有Opera不支持。同时要注意到时,在定义transform属性时,在Chrome和Safari浏览器中需要加(-webkit-)前缀。
transform属性的部分方法
函数 | 描述 |
---|---|
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 |
translate3d(x,y,z) | 定义 3D 转化。 |
translate(x,y) | 定义 2D 转换。 |
translateX(x) | 定义 2D/3D 转换,沿着 X 轴移动元素。 |
translateY(y) | 定义 2D/3D 转换,沿着 Y 轴移动元素。 |
translateZ(z) | 定义 3D 转换,沿着 Z 轴移动元素。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scale(x,y) | 定义 2D 缩放转换。 |
scaleX(x) | 定义 2D/3D 缩放转换,通过给定一个 X 轴的值(宽度)。 |
scaleY(y) | 定义 2D/3D 缩放转换,通过给定一个 Y 轴的值(高度)。 |
scaleZ(z) | 定义 3D 缩放转换,通过给定一个Z轴的值。 |
rotate(angle) | 定义 2D 旋转。 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
rotateX(angle) | 定义 3D 旋转,通过给定的值沿着 X 轴旋转。 |
rotateY(angle) | 定义 3D 旋转,通过给定的值沿着 Y 轴旋转。 |
rotateZ(angle) | 定义 3D 旋转,通过给定的值沿着 Z 轴旋转。 |
skew(x-angle,y-angle) | 定义 2D 倾斜转换,沿着 X 和 Y 轴。 |
skewX(angle) | 定义 2D 倾斜转换,通过给定的值沿着 X 轴倾斜。 |
skewY(angle) | 定义 2D 倾斜转换,通过给定的值沿着 Y 轴倾斜。 |
perspective(n) | 定义 3D 转换元素的透视视图。 |
注:angle为度数值
在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。
transform属性的语法结构:
transform:none | <transform-function> [ <transform-function> ]*
也就是:
transform:rotate|scale|skew| translate|matrix;
通过rotate(angle),可以对元素进行旋转操作,如果给定值为负值,元素会逆时针旋转。
*{
transform: rotatey(130deg); transform: rotate(20deg);
}
无转换
(3D转换)transform:rotateY(130deg)
(2D转换)transform: rotate(20deg);
通过scale()方法,可以通过给定倍数对元素的尺寸进行放大或者缩小。
*{
transform: scale(4,2);
}
通过skew()方法,可以通过给定的角度值,对元素的X轴和Y轴进行翻转。
*{
transform: skew(20deg,20deg);
}
我们通过一个就简单的导航栏看看transform属性各个方法的效果:
关键部分的CSS代码:
.menu ul {
list-style-type: none;
border-top: 10px solid gray;
}
.menu ul li a {
color: #fff;
float: left;
margin: 0 5px;
font-size: 15px;
height: 50px;
line-height: 50px;
text-align: center;
width: 80px;
padding: 10px 5px;
border-radius: 0 0 5px 5px;
box-shadow: 0 0 1px #000, inset 0 0 2px #000;
text-shadow: 0 2px 2px #000;
text-decoration: none;
}
.menu ul li a {
background: #2EC7D2;
} .menu ul li.translate a:hover {
transform: translate(-10px, -10px);
}
.menu ul li.translate-x a:hover {
transform: translateX(-10px);
}
.menu ul li.translate-y a:hover {
transform: translateY(-10px);
}
.menu ul li.rotate a:hover {
transform: rotate(30deg);
}
.menu ul li.scale a:hover {
transform: scale(0.8, 0.8);
}
.menu ul li.scale-x a:hover {
transform: scaleX(0.8);
}
.menu ul li.scale-y a:hover {
transform: scaleY(1.2);
}
.menu ul li.skew a:hover {
transform: skew(30deg, 30deg);
}
.menu ul li.skew-x a:hover {
transform: skewX(-30deg);
}
.menu ul li.skew-y a:hover {
transform: skewY(30deg);
}
.menu ul li.matrix a:hover {
transform: matrix(1, 1, -1, 0, 0, 0);
}
.menu ul li.rotate-y a:hover {
transform:rotateY(120deg);
}
.menu ul li.rotate-z a:hover {
transform:rotateZ(120deg);
}
.menu ul li.perspective a:hover {
transform:perspective(50px) rotateY(30deg);
}
.menu ul li.transform-origin a {
transform-origin: left;
}
部分html代码:
<div class="menu">
<ul class="clearfix">
<li class="item translate"><a href="#">Translate</a></li>
<li class="item translate-x"><a href="#">TranslateX</a></li>
<li class="item translate-y"><a href="#">TranslateY</a></li>
<li class="item rotate"><a href="#">Rotate</a></li>
<li class="item scale"><a href="#">Scale</a></li>
<li class="item scale-x"><a href="#">ScaleX</a></li>
<li class="item scale-y"><a href="#">ScaleY</a></li>
<li class="item skew"><a href="#">Skew</a></li>
<li class="item skew-x"><a href="#">SkewX</a></li>
<li class="item skew-y"><a href="#">SkewY</a></li>
<li class="item matrix"><a href="#">Matrix</a></li>
<li class="item rotate-y"><a href="#">RotateY</a></li>
<li class="item rotate-z"><a href="#">RotateZ</a></li>
<li class="item perspective"><a href="#">perspective</a></li>
</ul>
</div>
CSS自学笔记(13):CSS3 2D/3D转换的更多相关文章
- CSS自学笔记(10):CSS3盒子模型
CSS3为CSS技术的升级版本.最新版本. 就CSS而言,它是一个模块,是一个庞大而又复杂的模块,但是在CSS3中,将这一个庞大的模块分解为一个个容易理解的同时又很精简的小模块,同时CSS3中又添加了 ...
- JAVA自学笔记13
JAVA自学笔记13 1.StringBuffer类 1)线程安全的可变字符序列 线程安全(即同步) 2)StringBuffer与String的区别:一个可变一个不可变 3)构造方法: ①publi ...
- 前端笔记之HTML5&CSS3(下)2D/3D转换&animate动画
一.2D转换(transform) CSS3中的transform转换和PS中的变换是一样的,分别有:缩放.位移.斜切.旋转 1.1 transform:scale()缩放 transform:sca ...
- CSS3中2D/3D转换、过渡、动画
转换.过渡.动画 2D 转换 1.translate() 方法 通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数: 实例 d ...
- HTML5和CSS3实现3D转换效果 CSS3的3D效果
上次,我们一起研究了css3的2d模块,这次我们一起来看一下css3的3d模块. 首先,我们来了解一下3d的坐标系,x轴在屏幕上为水平方向,y轴为垂直方向,而z轴为垂直于屏幕的方向. 不理解的话可以参 ...
- CSS学习笔记之CSS3新特性
目录 1.边框 2.背景 3.文本 4.字体 5.转换 6.过渡 7.动画 8.多列 9.自定义尺寸 CSS 用于控制网页的样式和布局,而 CSS3 是最新的 CSS 标准,这篇文章将着重介绍 CSS ...
- CSS自学笔记(16):CSS3 用户界面
CSS3中,也新增了一些关于用户界面的属性,这些属性可以重设元素或者盒子的尺寸.轮廓等等. 新增的部分属性的浏览器支持情况 属性 浏览器支持 resize IE Firefox Chrome Safa ...
- CSS自学笔记(15):CSS3多列布局
在CSS3中,也新增了一些关于文本布局的几个比较简单的属性.通过这些新增的属性,我们可以对文本进行简单的排版,就想报纸和杂志那样. 新增的部分属性,以及浏览器支持情况: 属性 浏览器支持 column ...
- CSS自学笔记(14):CSS3动画效果
在CSS3中也新增了一些能够对元素创建动画处理的属性.通过这些新增的属性,我们可以实现元素从一种样式变换成另一种样式时为元素添加动态效果,我们就可以取代网页中的动态图片.flash动画和JavaScr ...
随机推荐
- E - Number Sequence(第二季水)
Description A single positive integer i is given. Write a program to find the digit located in the p ...
- 生成简历经验总结(解析HTML字符串)
在生成简历的过程中,我的做法是首先设计一个word的简历模板,设置好书签,从数据库中读取数据,调用aspose进行填充.一般的数据项包括图片文件都没有问题. 问题出在了HTML字符串上.因为简历中有几 ...
- Android 部分机型GridView四周默认间距
在测试兼容性时候,部分机型,比如联想和一加等手机,在使用Gridview的时候,会默认四周有默认边距,10dp左右. 这时候需要设置 android:listSelector="@andro ...
- WebView高危接口安全检测
高危]WebView高危接口安全检测共2处详细内容:在Android系统4.3.1~3.0版本,系统webview默认添加了searchBoxJavaBridge_接口,如果未移除该接口可能导致低版本 ...
- Vue.js 学习示例
本篇和大家分享的是学习Vuejs的总结和调用webapi的一个小示例:快到年底了争取和大家多分享点东西,希望能对各位有所帮助:本章内容希望大家喜欢,也希望各位多多扫码支持和推荐谢谢: » Vuejs ...
- 碰到这个SB错误,'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.点办
After launching MacVim you may get this annoying error message:'Taglist: Exuberant ctags (http://cta ...
- Oracle监控指标
1.数据文件或数据设备 参考:http://f.dataguru.cn/thread-106901-1-1.html2.数据库日志空间活或回滚段(包括大小.设备.文件及可用率.日志空间竞争情况或回滚段 ...
- Windows Components Reference(Windows组件参考)
原文 http://www.msfn.org/board/topic/127287-windows-components-reference/ green means the component na ...
- xmpp总结
1. 浅谈对于XMPP协议自己的看法以及对其理解 http://blog.sina.com.cn/s/blog_69f68f880102uyeg.html 2. XMPP协议学习笔记一 http:// ...
- cURL.1 手册页
摘自http://blog.csdn.net/huangxy10/article/details/45717793 cURL.1 手册页 名称 cURL - transfer a URL 摘要 cUR ...