继上一次学了如何去运用css画平面图形,这一次学如何去画正方体,从2D向着3D学习,虽然有点满,但总是一个过程,一点一点积累,然后记录起来。

Transfrom3D

在这一次中运用到了一下几种属性:

rotate:rotateX() rotateY()  rotateZ()   ;这个属性能够实现翻转效果

translate:translateX translateY() translateZ()  ;这个属性是实现移动效果

origin: 是设立为中心

perspective: 是影响3D的视觉效果,当它的值越小,它视觉会跑到物体的内部。

下面是正方体的代码详解

1、先写body,先写一个容器,然后这个容器里面存放着正方体,正方体里面由六个面,先初始化。

 <body>
<div class="box">
<div class="zheng">
<div class="line-1">front</div>
<div class="line-2">back</div>
<div class="line-3">left</div>
<div class="line-4">right</div>
<div class="line-5">TOP</div>
<div class="line-6">bottom</div>
</div>
</div>
</body>

1-6个面分别设立为 前 后 左 右 上 下。

2、构造CSS样式

2.1、body

body{ background-color: #000; color:white; }

设置背景颜色为黑色,字体为白色。

2.2、box样式

 .box{
width: 300px;
height: 300px;
position: absolute;
left: 50%;
top: 50%;
margin: -150px 0 0 -150px;
perspective-origin:50% 50%;
perspective:3000px;
}

设置宽度和高度,成为正方形,通过绝对定位,将其设置在页面中心。

2.3、zheng

 .zheng{
height: 100%;
transform-style:preserve-3d;
animation:rotate3d 30s infinite linear;
border-radius:50%; }

宽度和高度来自box,同时设置其运动时间为30s

2.4、设置zheng里面的样式统一属性

 .zheng > div{
border: 1px #fff solid;
position: absolute;
width: 100%;
height: 100%; }

为它设置白色边框,设置绝对定位,相对于body定位,width,height都是300px,它是由六个叠加一起的

2.5、设置动态效果

 @keyframes rotate3d{
0%{transform: rotateZ(30deg) rotateY(0);}
100%{transform: rotateZ(-135deg) rotateY(360deg);} }

2.6、六个面样式设置——前后左右上下

     .zheng .line-1{
transform: translateZ(-300px);
transform-origin:bottom;
border-color: blue;
}
.zheng .line-2{
transform-origin:bottom;
border-color: green;
} .zheng .line-3{
transform: rotateY(-90deg) translateX(-150px) translateZ(150px);
transform-origin:orange;
}
.zheng .line-4{
transform: rotateY(-90deg) translateX(-150px) translateZ(-150px);
transform-origin:bottom;
border-color: red;
}
.zheng .line-5{
transform:rotateX(90deg) translateZ(300px) ;
transform-origin:bottom;
}
.zheng .line-6{
transform:rotateX(-90deg) translateY(300px);
transform-origin:bottom;
}

六个面设置完成后,可以看到效果

2.7、在正方体上也可以添加图片

 .zheng .line-1{
transform: translateZ(-300px);
transform-origin:bottom;
border-color: blue;
background-image: url(11.jpg);
background-repeat: no-repeat; }

CSS学习笔记二:css 画立体图形的更多相关文章

  1. HTML+CSS学习笔记 (7) - CSS样式基本知识

    HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...

  2. Webpack4 学习笔记二 CSS模块转换

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...

  3. HTML+CSS学习笔记 (12) - CSS布局模型

    标签:HTML+CSS css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是 ...

  4. DIV+CSS学习笔记(CSS)

    css基础知识: css样式表的定义 css:(Cascading Style Sheets)层叠样式表: 分类及位置:内部样式-head区域style标签里面 外部样式-link调用 内联样式-标签 ...

  5. CSS学习笔记02 CSS选择器

    1.通配符选择器 通配符选择器用“*"号表示,是所有选择器中作用范围最广的,能匹配页面中所有的元素 /*设置当前页面中所有标签的颜色为红色*/ * { color: red; } 2.标签选 ...

  6. CSS学习笔记01 CSS简介

    1.CSS定义 CSS 指层叠样式表 (Cascading Style Sheets),是一种样式表语言,用来描述 HTML 或 XML(包括如 SVG.XHTML 之类的 XML 分支语言)文档的呈 ...

  7. css学习笔记二

    下面来总结一下盒子模型,流式布局,浮动布局,层布局(定位布局). 1.盒子模型 有二种:IE盒子模型 和 标准w3c盒子模型 1)IE的盒子模型的content包含了padding和border 2) ...

  8. Html+css学习笔记二 标题

    学习新标签,标题 <html> <head> <title>tags</title> </head> <body> <h1 ...

  9. css学习笔记二之inline-block

    1.inline-block是CSS2.1中新增的盒类型,在div中将display属性设定为"inline-block",则div显示效果与设置display属性为"i ...

随机推荐

  1. 5、使用Libgdx设计一个简单的游戏------雨滴

    (原文:http://www.libgdx.cn/topic/49/5-%E4%BD%BF%E7%94%A8libgdx%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E7% ...

  2. (NO.00001)iOS游戏SpeedBoy Lite成形记(十五)

    现在啃第2个问题:如何让玩家输入赌注金额. 实现的方法有很多种,比如可以限制玩家只能从特定的金额中选择,把每个选择做成一个按钮即可.以下是一个假想选择窗口的示意图: 这样没有玩家的输入问题了.缺点是不 ...

  3. mysql进阶(二)索引简易教程

    Mysql索引简易教程 基本概念 索引是指把你设置为索引的字段A的内容储存在一个独立区间S里,里面只有这个字段的内容.在找查这个与这个字段A的内容时会直接从这个独立区间里查找,而不是去到数据表里查找. ...

  4. 如何运行 rpcz python example

    试着运行 rpcz-python 的 example.过程记录如下.假设protobuf-py已经按照protobuf的安装说明安装了.发现 protobuf-2.5.0版的python包是pytho ...

  5. kettle文件自动化部署(shell脚本执行):命令行参数传入

    shell脚本中调用kitchen 和 pan去执行,job和transformation文件.分 windows和 dos系统两种. 举个简单的小例子 shell脚本: export JAVA_HO ...

  6. 2DSprite添加Light照射(Unity3D开发之十六)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/45534245 ...

  7. AngularJS进阶(九)控制器controller之间如何通信

    AngularJS控制器controller之间如何通信 注:请点击此处进行充电! angular控制器通信的方式有三种: 1,利用作用域继承的方式.即子控制器继承父控制器中的内容 2,基于事件的方式 ...

  8. S3c2440A WINCE平台HIVE注册表+binfs的实现

    今天最大的收获莫过于把binfs和hive注册表同时在三星的平台上实现了,这可是前无古人啊(只是看到好多哥们说找不到三星的HIVE资料),哈哈哈.怕今天的成果日后成炮灰,还是写下来比较好,要养成这样的 ...

  9. Unity C#用WWW操作数据库

    //在C#中进行GET查询 IEnumerator GETTest() { WWW w = new WWW("http://192.168.1.12/kaohe.php?&id=10 ...

  10. C语言笔试经典--求分数数列的和

    题目: 求数组的和    2   3/2   5/3   8/5  13/8   21/13  ...    求前20项的和 //求分数数列的和 #include<stdio.h> // ...