CSS3:transform的深入学习

没有多余的元素,也没有多余的代码,一个简单的transform移动轻松实现了元素在页面内的水平垂直居中,CSS3果然是一个需要深入探索的东西,而好记性不如烂笔头...

好了,英语学习时间到:transform,变换、改变的意思,在CSS3里它可以让元素改变位置(translate)、改变旋转角度(rotate)、改变大小比例(scale)、让元素倾斜扭曲(skew)、还有元素的矩阵变形(matrix),transform不仅可以2D转换,还能进行3D转换,这简直是Photoshop才能做的事啊,太厉害有木有!

学了一个transform,多认识了6个单词,感觉棒棒哒~

为了演示这几个效果,简单做个html页面出来:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Document</title>
 6 <style>
 7 .wrap{
 8     width:500px;
 9     height:200px;
10     margin:100px auto;
11     background:#bbb;
12     border:1px solid #aaa;
13 }
14 .box{
15     width:100px;
16     height:100px;
17     margin:50px auto;
18     border:2px solid #000;
19 }
20 .demo{
21     width:100px;
22     height:100px;
23     background:#eee;
24 }
25 </style>
26 </head>
27 <body>
28 <div class="wrap">
29     <div class="box">
30         <div class="demo"></div>
31     </div>
32 </div>
33 </body>
34 </html>

页面预览效果如下:

既然一个接触到的是translate,我就先来看一下它:

1、transform移动:translate

1-1 2D移动

translateX(x):在X轴水平移动

给demo加上样式

1 .demo{
2     width:100px;
3     height:100px;
4     background:#eee;
5     transform:translateX(50px);
6 }

可以看到它往右移动了50px:

translateY(y):在Y轴水平移动

同样再试试Y轴的:

1 .demo{
2     width:100px;
3     height:100px;
4     background:#eee;
5     transform:translateY(50px);
6 }

可以看到它往下移动了50px:

translate(x,y):在X,Y轴水平移动,只填一个值,默认为X轴

如果想要在X轴移动100px,Y轴移动20px,不用写两遍,直接translate(100px,20px)就可以了:

1 .demo{
2     width:100px;
3     height:100px;
4     background:#eee;
5     transform:translate(100px,20px);
6 }

看看效果:

1-2 3D移动

translateZ(z):在Z轴移动,也就是前后移动

刚刚看了水平方向的移动,现在再试试3D的,给它的Z轴加个试试:

1 .demo{
2     width:100px;
3     height:100px;
4     background:#eee;
5     transform:translateZ(100px);
6 }

还在原来的位置,什么都没变,这是为什么呢?

我们的网页它是平面的,如果想要看到一个3D的效果,需要让它的父级转为3D视图模式(transform-style:preserve-3d),再设置它的景深(perspective),这个值说白了就是假设我在距离多远的地方看它。这一块儿等会儿再介绍吧~但一定要记得,要进行3D的转换,父级一定要设置为transform-style:preserve-3d,并且设置它的perspective。

translate3d(x,y,z):3D的位移,等会儿再看

当然translate里的值可以是百分百,也可以是负数。当然translate里的值可以是百分百,也可以是负数。

2、transform旋转:rotate

2-1 2D旋转

rotate(angle)

2-2 3D旋转

rotateX(angle)

rotateY(angle)

rotateZ(angle)

rotate3d(x,y,z,angle)

3、transform比例缩放:scale

3-1 2D缩放

scaleX(y)

scaleY(y)

scale(x,y)

3-2 3D缩放

scaleZ(z)

scale3d(x,y,z)

4、transform倾斜扭曲:skew

4-1 2D倾斜

skew

4-2 3D倾斜

5、transform矩阵:matrix

5-1 2D

matrix(n,n,n,n,n,n)

5-2 3D

matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)

时间: 2024-08-02 13:59:51

CSS3:transform的深入学习的相关文章

理解CSS3 transform中的Matrix(矩阵)

一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机会. CSS同行间:你是不是有这样的感觉:哎呀呀,每天就是对着设计图切页面,貌似技术没有得到实质性地提升啊,或者觉得日后高度有限! 我们应该都知道二八法则(巴莱多定律),即任何一组东西中

如何使用 css3 transform 属性来变换背景图?

本文和大家分享的主要是使用 css3 transform 属性来变换背景图相关内容,一起来看看吧,希望对大家学习css3有所帮助. 使用 css3 transform 属性可以轻易的旋转,倾斜,缩放任何元素.目前即使没有任何前缀也可以在绝大部分浏览器上很好的使用 . 如果你要在黑莓浏览器或者 UC 浏览器使用这个属性, 你需要加 -webkit- 前缀. #myelement { -webkit-transform: rotate(30deg); transform: rotate(30deg)

CSS3 Transform变形理解与应用

CSS3 Transform变形理解与应用 Transform:对元素进行变形:Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束.Animation:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.可以设置多个关键贞. Transition与Animation:transition需要触发一个事件 ,而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元 素cs

理解CSS3 transform中的Matrix(矩阵)——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机

CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化

目录 一.浏览器兼容 1.1.概要 1.2.浏览器内核 1.3.浏览器市场份额(Browser Market Share) 1.4.兼容的一般标准 1.5.CSS Reset 1.6.CSS Hack 1.6.1.条件注释法 1.6.2.样式内属性标记法 1.6.3.选择器前缀法 1.7.文档模式 (X-UA-Compatible) 1.8.javascript兼容 二.前端性能优化 2.1.概要 2.2.减少HTTP请求数量 2.2.1.图片地图 2.2.2.精灵图片(Sprite) 2.2.

CSS3与页面布局学习笔记(四)——页面布局大全

一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能如下: 1.1.1.向上移动 当多个元素同时从标准流中脱离开来时,如果前一个元素的宽度为100%宽度,后面的元素通过负边距可以实现上移.当负的边距超过自身的宽度将上移,只要没有超过自身宽度就不会上移,示例如下: <!DOCTYPE html> <html> <head> &

CSS3与页面布局学习总结(一)——概要、选择器、特殊性与刻度单位

CSS3与页面布局学习总结(一)--概要.选择器.特殊性与刻度单位 目录 一.CSS3概要 1.1.特点 1.2.效果演示 1.3.帮助文档与学习 二.选择器 1.1.基础的选择器 1.2.组合选择器 1.3.属性选择器 1.4.伪类 1.5.伪元素 三.特殊性(优先级) 3.2.计算特殊性值 四.刻度 4.1.绝对长度单位 4.2.文本相对长度单位 4.3.Web App与Rem 五.示例与帮助下载 web前端开发者最最注的内容是三个:HTML.CSS与JavaScript,他们分别在不同方面

css3 transform中的matrix矩阵

CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示意图:3D变换则是4*4的矩阵. 有些迷糊?恩,我也觉得上面讲述有些不合时宜.那好,我们先看看其他东西,层层渐进——transform属性. 具体关于transform属性具体内容可以点击这里补个课.稍微熟悉的人都知道,transform中有这么几个属性方法: .trans_skew { trans

CSS3与页面布局学习总结(五)——Web Font与Sprite

CSS3与页面布局学习总结(五)--Web Font与Sprite 目录 一.web font 1.1.什么是font-face 1.2.font-face优点 1.3.字体格式 1.4.使用@font-face 1.4.1.下载字体 1.4.2.使用font-face将字体引入web中 1.4.3.应用字体 1.4.4.字体格式转换 1.4.5.查看字体编码 1.4.6.base64内嵌字体 二.CSS Sprite 2.1.将小图片合并 2.2.使用CSS分离图片 2.3.小结 三.示例下载

css3 transform transition animation 练习

旋转 位移 缩放 扭曲 动画 <!DOCTYPE HTML><html> <head> <meta charset="utf-8" /> <title>css3 transform transition animation 练习</title> <style type="text/css"> body { padding: 10px 50px; } div { margin: 50p