css 3d box 实现的一些注意事项

Test1.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7     *{
 8         margin: 0;
 9         padding: 0;
10     }
11     .wrap{
12         margin: 50px auto;
13         width: 200px;
14         padding: 200px;
15         perspective: 800px;
16         border: 1px dashed #333;
17     }
18     .box{
19         position: relative;
20         width: 200px;
21         height: 200px;
22         line-height: 200px;
23         font-size: 100px;
24         text-align: center;
25         color: #fff;
26         font-weight: bold;
27         border: 1px dashed #ccc;
28         transform-style: preserve-3d;
29         transform-origin: center center -100px;/*定位的方式,旋转中心点这样设置,但存在兼容性问题*/
30         transition: 1s;
31     }
32     .box div{
33         position: absolute;
34         width: 200px;
35         height: 200px;
36     }
37     .box div:nth-of-type(1){
38         top: -200px;
39         background-color: red;
40         transform-origin: bottom;
41         transform: rotateX(90deg);
42     }
43     .box div:nth-of-type(2){
44         left: -200px;
45         background-color: green;
46         transform-origin: right;
47         transform: rotateY(-90deg);
48     }
49     .box div:nth-of-type(3){
50         background-color: blue;
51     }
52     .box div:nth-of-type(4){
53         right: -200px;
54         background-color: #333;
55         transform-origin: left;
56         transform: rotateY(90deg);
57     }
58     .box div:nth-of-type(5){
59         bottom: -200px;
60         background-color: yellow;
61         transform-origin: top;
62         transform: rotateX(-90deg);
63     }
64     .box div:nth-of-type(6){
65         background-color: tan;
66         transform: translateZ(-200px) rotateX(180deg);
67     }
68     .wrap:hover .box{
69         transform: rotateX(360deg);
70     }
71     </style>
72 </head>
73 <body>
74     <div class="wrap">
75         <div class="box">
76             <div>1</div>
77             <div>2</div>
78             <div>3</div>
79             <div>4</div>
80             <div>5</div>
81             <div>6</div>
82         </div>
83     </div>
84 </body>
85 </html>

Test2.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7     *{
 8         margin: 0;
 9         padding: 0;
10     }
11     .wrap{
12         margin: 50px auto;
13         width: 200px;
14         padding: 200px;
15         perspective: 800px;
16         border: 1px dashed #333;
17     }
18     .box{
19         position: relative;
20         width: 200px;
21         height: 200px;
22         line-height: 200px;
23         font-size: 100px;
24         text-align: center;
25         color: #fff;
26         font-weight: bold;
27         border: 1px dashed #ccc;
28         transform-style: preserve-3d;
29         transform-origin: center center -100px;/*定位的方式,旋转中心点这样设置,但存在兼容性问题*/
30         transition: 1s;
31     }
32     .box div{
33         position: absolute;
34         width: 200px;
35         height: 200px;
36     }
37     .box div:nth-of-type(1){
38         top: -200px;
39         background-color: red;
40         transform-origin: bottom;
41         transform: rotateX(90deg);
42     }
43     .box div:nth-of-type(2){
44         left: -200px;
45         background-color: green;
46         transform-origin: right;
47         transform: rotateY(-90deg);
48     }
49     .box div:nth-of-type(3){
50         background-color: blue;
51     }
52     .box div:nth-of-type(4){
53         right: -200px;
54         background-color: #333;
55         transform-origin: left;
56         transform: rotateY(90deg);
57     }
58     .box div:nth-of-type(5){
59         bottom: -200px;
60         background-color: yellow;
61         transform-origin: top;
62         transform: rotateX(-90deg);
63     }
64     .box div:nth-of-type(6){
65         background-color: tan;
66         transform: translateZ(-200px) rotateX(180deg);
67     }
68     .wrap:hover .box{
69         transform: rotateX(360deg);
70     }
71     </style>
72 </head>
73 <body>
74     <div class="wrap">
75         <div class="box">
76             <div>1</div>
77             <div>2</div>
78             <div>3</div>
79             <div>4</div>
80             <div>5</div>
81             <div>6</div>
82         </div>
83     </div>
84 </body>
85 </html>

Test3.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style>
 7     /*不用麻烦设置left,top等值*/
 8     .wrap{
 9         margin: 0 auto;
10         width: 200px;
11         height: 200px;
12         padding: 200px;
13         border: 1px solid #333;
14         perspective: 800px;/*!!!*/
15     }
16     .box{
17         width: 200px;
18         height: 200px;
19         position: relative;
20         transform-style: preserve-3d;/*!!!*/
21         transition: 3s all;
22         transform: translateZ(-100px) rotateX(0);
23     }
24     .box div{
25         width: 200px;
26         height: 200px;
27         line-height: 200px;
28         color: #fff;
29         position: absolute;
30         font-size: 100px;
31         text-align: center;
32     }
33     .box div:nth-of-type(1){
34         background-color: red;
35         transform: translateZ(100px);
36     }
37     .box div:nth-of-type(2){
38         background-color: blue;
39         transform-origin: top;
40         transform: translateZ(-100px) rotateX(90deg);/*!!!先移到最里面再操作能保证数字是正的,然后再向前移动,然后再控制其父向后移动*/
41     }
42     .box div:nth-of-type(3){
43         background-color: yellow;
44         transform: translateZ(-100px) rotateX(180deg);/*!!!*/
45     }
46     .box div:nth-of-type(4){
47         background-color: green;
48         transform-origin: bottom;
49         transform: translateZ(-100px) rotateX(-90deg);/*!!!*/
50     }
51     .wrap:hover .box{
52         transform: translateZ(-100px) rotateX(270deg);
53     }
54     </style>
55 </head>
56 <body>
57     <div class="wrap">
58         <div class="box">
59             <div>1</div>
60             <div>2</div>
61             <div>3</div>
62             <div>4</div>
63         </div>
64     </div>
65 </body>
66 </html>
时间: 2024-11-13 10:00:57

css 3d box 实现的一些注意事项的相关文章

CSS 3D 的魅力

作者 | 子慕大诗人 来源 | www.cnblogs.com/1wen/p/9064011.html   前言:   最近玩了玩用css来构建3D效果,写了几个demo,所以博客总结一下.  在阅读这篇博客之前,请先自行了解一下css 3D的属性,例如:transform-style,transform-origin,transform, perspective.   demo1   高度可变的立方体,先来看看最终效果,自己弄得有点丑,如果设计师调下色,添加点元素应该会好看的多       1

CSS 3D的魅力

用户1093975发表于Web项目聚集地订阅 151 在这篇文章中: 前言: demo1 demo2 结语: 本文介绍了CSS来实现3D效果,并且有详细代码和解释.建议大家只字不差的阅读.本文的作者是「子慕大诗人」 前言: 最近玩了玩用css来构建3D效果,写了几个demo,所以博客总结一下. 在阅读这篇博客之前,请先自行了解一下css 3D的属性,例如:transform-style,transform-origin,transform, perspective. demo1 高度可变的立方体

CSS 3D transform(CSS的3D变换)

src1:好吧,CSS3 3D transform变换,不过如此! 评价:图文并茂地解释 CSS 3D transform 的基本概念及原理,超级通俗易懂,读后简直醍醐灌顶啊!!!幽默的程序员 笔记: 一.4个概念 1.突破口:三个方法  3D transform 中的三个方法: (1)rotateX(angle):正面推倒 (2)rotateY(angle):左右转 (3)rotateZ(angle):横抱躺着 2.必不可少的perspective(透视.视角) 没透视,不3D CSS 3D

探究 CSS 混合模式\滤镜导致 CSS 3D 失效问题

今天在写一个小的 CSS Demo,一个关于 3d 球的旋转动画,关于 CSS 3D,少不了会使用下面这几个属性: { transform-style: preserve-3d; perspective: 1000; transform: translate3d(); } 这个 Demo 你可以戳这里,大概是这样:CodePen Demo - 3D ball: 嗯,大概到了这个效果,想到了 CSS 混合模式 mix-blend-mode,寻思着,利用混合模式,是否能让效果更上一层楼或者碰撞出一些

css 3D

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>3D立方体</title> <style type="text/css"> <style> .stage {} .box { position: relative;margin: 200px; -webkit-transform-style:preser

CSS命名规范参考及书写注意事项

CSS书写顺序 *{ /*显示属性*/ display position float clear cursor - /*盒模型*/ margin padding width height /*排版*/ vertical-align white-space text-decoration text-align - /*文字*/ color font content /*边框背景 为什么要把 boder和background放在最后的原因是修改的频率会较之前的频繁,放在最后查看起来方便,哈哈.*/ 

css基础box盒子

盒子好比快递小哥的一个快递包裹.把这个包裹延着x轴切开,如下图所示: 盒子的内容就是你网购的商品,盒子的填充就是包裹里面一些泡沫或者报纸保护运输的物品的安全,边框就是包裹的盒子,盒子的外边距是快递小哥来放置快递的时候,快递与快递的距离.对应到css中如上图所示. content只需确定 width 和 height 就能确定其大小.但是对span元素不适用. <!DOCTYPE html> <html> <head> <meta charset="UTF

CSS的优先级、选择器、注意事项

CSS的优先级: 内嵌样式>ID选择器>类选择器>标签选择器 内部样式>内部样式>外部样式 CSS的选择器: 选择器:在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 1.基本选择器(如下:): ID选择器:根据标签ID设置标签的样式(例如:#div1{height:100px;}),通常用来设置划分区间使用. 类选择器:根据标签的类设置标签的样式(例如:.div1{height:100px;}),通常用于设置不同标签却有相同样式. 标签选择器:根据标签名设置标

css 3d 动画 相关

transform-style: preserve-3d; 设置3D模式 perspective:700px :属性定义 3D 元素距视图的距离,以像素计.该属性允许您改变 3D 元素查看 3D 元素的视图.当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身 perspective-origin:50% 50% :属性定义 3D 元素所基于的 X 轴和 Y 轴.该属性允许您改变 3D 元素的底部位置.当为元素定义 perspective-origin 属性时,其