transform属性

CSS3的变形(transform)属性让元素在一个坐标系统中变形。transform属性的基本语法如下:

transform:none | <transform-function> [<transform-function>]*

2Dtransform常用的transform-function的功能:

    translate():用来移动元素,可以根据X轴和Y轴坐标重新定位元素位置。在此基础上有两个扩展函数:translateX()和translateY()。
    scale():用来缩小或放大元素,可以使用元素尺寸发生变化。在此基础上有两个扩展函数:scaleX()和scaleY()。
    rotate():用来旋转元素。
    skew():用来让元素倾斜。在此基础上有两个扩展函数:skewX()和skewY()。
    matrix():定义矩阵变形,基于X轴和Y轴坐标重新定位元素位置。

3D transform常用的transform-function的功能:

    translate3d():移动元素,用来指定一个3D变形移动位移量。
    translatez():指定3D位移在Z轴的位移量。
    scale3d():用来缩放一个元素。
    scaleZ():指定Z轴的缩放向量。
    rotate3d():指定元素具有一个三维旋转的角度。
    rotateX()、rotateY()和rotateZ():让元素具有一个旋转角度。
    perspective():指定一个透视投影矩阵。
    matrix3d():定义矩阵变形。

一些重要属性:

    transform-origin属性指定元素的中心点在哪。后面增加了第三个数transform-origin-z,控制元素三维空间中心点。
    perspective属性相对于观众产生一个3D场景,看3D物体,眼睛到画布的距离。 它需要应用到变形元素的祖先元素上。
    perspective-origin为视点的位置。
    backface-visibilty属性用来设置背面的可见性。
    设置transform-style的值为preserve-3d时,建立一个3D渲染环境。

案例:利用transform来写一个正方体

/* CSS */
body {
-webkit-perspective:;
} .box {
width: 100px;
height: 100px;
position: relative;
margin: 100px auto 0;
transform-style: preserve-3d;
animation: flash 3s linear infinite;
} .box:hover > div:nth-of-type(1){
transform: translateZ(-200px);
}
.box:hover > div:nth-of-type(2){
transform: rotateX(90deg) translateZ(200px);
}
.box:hover > div:nth-of-type(3){
transform: rotateX(90deg) translateZ(-200px);
}
.box:hover > div:nth-of-type(4){
transform: rotateY(90deg) translateZ(200px);
}
.box:hover > div:nth-of-type(5){
transform: rotateY(90deg) translateZ(-200px);
}
.box:hover > div:nth-of-type(6){
transform: translateZ(200px);
} @keyframes flash {
0%{ transform: rotateX(0) rotateX(0); }
100%{ transform: rotate(360deg) rotateX(360deg); }
} .box>div {
width: 100px;
height: 100px;
position: absolute;
transition: all 1s;
} .box>div:nth-of-type(1){ background: lightblue; }
.box>div:nth-of-type(2){ background: lime; }
.box>div:nth-of-type(3){ background: lightseagreen; }
.box>div:nth-of-type(4){ background: orange; }
.box>div:nth-of-type(5){ background: darkorchid; }
.box>div:nth-of-type(6){ background: pink; } .box>div:nth-of-type(1){ transform: translateZ(-50px); }
.box>div:nth-of-type(2){ transform: rotateX(90deg) translateZ(50px); }
.box>div:nth-of-type(3){ transform: rotateX(90deg) translateZ(-50px); }
.box>div:nth-of-type(4){ transform: rotateY(90deg) translateZ(50px);}
.box>div:nth-of-type(5){ transform: rotateY(90deg) translateZ(-50px);} .box>div:nth-of-type(6){ transform: translateZ(50px); }
<!--HTML-->
<div class="box">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
 
效果:

从零开始的全栈工程师——利用CSS3画一个正方体 ( css3 )的更多相关文章

  1. 从零开始的全栈工程师——html篇1

    全栈工程师也可以叫web 前端 H5主要是网站 app 小程序 公众号这一块 HTML篇 html(超文本标记语言,标记通用标记语言下的一个应用.) “超文本”就是指页面内可以包含图片.链接,甚至音乐 ...

  2. 从零开始的全栈工程师——html篇1.8(知识点补充与浏览器兼容性)

    知识点补充 一.浏览器的兼容问题(关于浏览器的兼容问题 有很多大佬已经解释的很清楚了 这个得自己百度去多花点时间去了解 这里咱们只说一下前面的漏点) 浏览器兼容性问题又被称为网页兼容性或网站兼容性问题 ...

  3. 从零开始的全栈工程师——html篇1.2

    起名方式与CSS 一.起名方式(起名方式也叫选择器) 起名的目的是为了给标签添加属性 常见的3种选择器有 标签选择器   id选择器(使用的时候加#)    class选择器(使用的时候加.) 样式的 ...

  4. 从零开始的全栈工程师——MySQL数据库( Dos命令 ) ( phpstudy )

    MySQL是一个关系型数据库,存在表的概念.结构,数据库可以存放多张表,每个表里可以存放多个字段,每个字段可以存放多个记录. phpstudy使用终端打开数据库的命令行 密码: root 数据库 查看 ...

  5. 从零开始的全栈工程师——JS面向对象( 六大继承 )

    一.对象克隆 var obj = { name:'li', age:23 } var obj2 = obj; // 这不是对象克隆 只是把obj的内存地址给obj2 1.for in克隆(浅拷贝)  ...

  6. 从零开始的全栈工程师——JS面向对象(复习)

    作用域 栈内存:js执行的环境堆内存:存放代码块的空间 存放方式 键值对形式存放 字符串的形式存放js在执行之前 浏览器会给他一个全局作用域叫window 每个作用域下都分为两个模块 一个是内存模块一 ...

  7. 从零开始的全栈工程师——js篇(闭包)

    闭包是js中的一大特色,也是一大难点.简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量. 闭包的三大特点为: 1.函数嵌套函数 2.内部函数可以访问外部函数的变量 3.参数和变量不会 ...

  8. 从零开始的全栈工程师——js篇2.5

    数据类型与全局属性 js的本质就是处理数据 数据来自于后台的数据库所以变量就起到一个临时存储数据的这作用ECMAscirpt 制定了js的数据类型 一.数据类型 1.基本数据类型 基本数据类型就是简单 ...

  9. 从零开始的全栈工程师——js篇2.3

    自加和自减 =赋值运算 他的顺序是从右往左 从后往前 var a=12; 声明一个变量并将12赋值给aa=a+2; 将a+2赋值给a简写a+=3; a=a+3a+=1; a++ 在自己原有的基础上加1 ...

随机推荐

  1. HBASE常用操作增删改查

    http://javacrazyer.iteye.com/blog/1186881 http://www.cnblogs.com/invban/p/5667701.html

  2. 18.阻止默认操作e.preventDefault();防止冒泡事件:e.stopPropagation()

      一.加了e.preventDefault();会阻止a标签默认的点击跳转效果 <!DOCTYPE html> <html lang="en"> < ...

  3. 【转】idea中maven模块编程灰色

    可能是设置中模块的pom.xml文件被忽略了 去掉对勾 转自:https://blog.csdn.net/ethan__xu/article/details/80794060

  4. ubuntu画面延迟问题解决

    新配的电脑,安装ubuntu16.04以后,出现画面延迟的问题,尤其浏览网页的时候画面十分卡顿.用free命令查看过可用内存6.多G,经过询问大概是显卡问题,然后在https://ubuntuforu ...

  5. rest-assured之静态导入及简单使用实例

    一.静态导入 为了有效的使用rest-assured,官网推荐从下列class中静态导入方法: io.restassured.RestAssured.* io.restassured.matcher. ...

  6. 给小程序组件创建slot

    <!--comviewonents/juan/juan.wxml--> <view class="model-wrapper" hidden="{{vi ...

  7. [转] NOI, NOIP, IOI, ACM

    [From] http://blog.csdn.net/chenbean/article/details/38928243 NOI是教育部和中国科协委托中国计算机学会举办了全国青少年计算机程序设计竞赛 ...

  8. Selenium => Debugging “Element is not clickable at point” error

    [From] http://stackoverflow.com/questions/11908249/debugging-element-is-not-clickable-at-point-error ...

  9. python 函数的作用域,闭包函数的用法

    一.三元表达式 if条件成功的值    if  条件   else else条件成功的值 #if条件成立的结果 if 条件 else else条件成立的结果 # a = 20 # b = 10 # c ...

  10. PIE SDK元素的保存与打开

    1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...