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

Transfrom3D

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

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

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

origin: 是设立为中心

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

下面是正方体的代码详解

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

  1. <body>
  2. <div class="box">
  3. <div class="zheng">
  4. <div class="line-1">front</div>
  5. <div class="line-2">back</div>
  6. <div class="line-3">left</div>
  7. <div class="line-4">right</div>
  8. <div class="line-5">TOP</div>
  9. <div class="line-6">bottom</div>
  10. </div>
  11. </div>
  12. </body>

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

2、构造CSS样式

2.1、body

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

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

2.2、box样式

  1. .box{
  2. width: 300px;
  3. height: 300px;
  4. position: absolute;
  5. left: 50%;
  6. top: 50%;
  7. margin: -150px 0 0 -150px;
  8. perspective-origin:50% 50%;
  9. perspective:3000px;
  10. }

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

2.3、zheng

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

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

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

  1. .zheng > div{
  2. border: 1px #fff solid;
  3. position: absolute;
  4. width: 100%;
  5. height: 100%;
  6.  
  7. }

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

2.5、设置动态效果

  1. @keyframes rotate3d{
  2. 0%{transform: rotateZ(30deg) rotateY(0);}
  3. 100%{transform: rotateZ(-135deg) rotateY(360deg);}
  4.  
  5. }

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

  1. .zheng .line-1{
  2. transform: translateZ(-300px);
  3. transform-origin:bottom;
  4. border-color: blue;
  5. }
  6. .zheng .line-2{
  7. transform-origin:bottom;
  8. border-color: green;
  9. }
  10.  
  11. .zheng .line-3{
  12. transform: rotateY(-90deg) translateX(-150px) translateZ(150px);
  13. transform-origin:orange;
  14. }
  15. .zheng .line-4{
  16. transform: rotateY(-90deg) translateX(-150px) translateZ(-150px);
  17. transform-origin:bottom;
  18. border-color: red;
  19. }
  20. .zheng .line-5{
  21. transform:rotateX(90deg) translateZ(300px) ;
  22. transform-origin:bottom;
  23. }
  24. .zheng .line-6{
  25. transform:rotateX(-90deg) translateY(300px);
  26. transform-origin:bottom;
  27. }

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

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

  1. .zheng .line-1{
  2. transform: translateZ(-300px);
  3. transform-origin:bottom;
  4. border-color: blue;
  5. background-image: url(11.jpg);
  6. background-repeat: no-repeat;
  7.  
  8. }

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. 敏捷测试(3)--基于story的敏捷基础知识

    基于story的敏捷基础知识----story编写 为什么使用Story? 软件行业40年多来,需求分析技术已经很成熟了,但是MRD驱动的过程不堪重负.因为往往MRD编写会占去很多时间,MRD评审又会 ...

  2. Libgdx 1.5.2发布

    [1.5.2] - 修复问题 #2433 - 修复LWJGL在Mac OS X的本地载入问题 [1.5.1] - Gradle 升级到 2.2 - Android Gradle 工具升级到 1.0.0 ...

  3. python面向对象小练习

    就是几个动物,自动排列生成什么的 class Animal(object): def __init__(self,name,weight): self.name = name self.weight ...

  4. 发布一个参考tornado的高性能c++网络库:libtnet

    libtnet是一个用c++编写的高性能网络库,它在设计上面主要参考tornado,为服务端网络编程提供简洁而高效的接口,非常易于使用. Echo Server void onConnEvent(co ...

  5. 【一天一道LeetCode】#48. Rotate Image

    一天一道LeetCode系列 (一)题目 You are given an n x n 2D matrix representing an image. Rotate the image by 90 ...

  6. android自定义listview实现header悬浮框效果

    之前在使用iOS时,看到过一种分组的View,每一组都有一个Header,在上下滑动的时候,会有一个悬浮的Header,这种体验觉得很不错,请看下图: 上图中标红的1,2,3,4四张图中,当向上滑动时 ...

  7. Protobuf-java maven配置

    Protobuf-java maven配置 1. maven pom片断 <!-- protobuf-java for maven plugin http://stackoverflow.com ...

  8. XBMC源代码分析 1:整体结构以及编译方法

    XBMC(全称是XBOX Media Center)是一个开源的媒体中心软件.XBMC最初为Xbox而开发,可以运行在Linux.OSX.Windows.Android4.0系统.我自己下载了一个然后 ...

  9. OC第一天——面向对象

    1.OC: Object- C ,面向对象的语言 2.OC 和 C的区别: <1> oc是 c的超集 ,oc是在c语言的基础上做了扩展,c语言中的所有语法,在oc中都可以使用,甚至你可以在 ...

  10. Bootstrap 简介: 创建响应式、移动项目的工具

    原文链接: Introduction to Bootstrap: A Tool for Building Responsive, Mobile-First Projects 下载: 示例代码Boots ...