本篇文章所说的内容是纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空),代码都非常详细,有需要的朋友可以看一下。
一、正方体
我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造。(据体构造在代码中)
代码如下:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>正方体</title> <style> .d3{ height: 300px; width:300px; perspective: 800px; margin:140px auto; border:1px solid #ccc; } .stage{ height: 300px; width: 300px; transform-style: preserve-3d; position: relative; transform: rotateX(45deg) rotateY(45deg); } .role{ height: 300px; width: 300px; position: absolute; } .stage{ animation: dong 3s linear infinite;(这是舞台) } .stage:hover{ animation: paused; } @keyframes dong{(这是使舞台旋转的动画) from{ transform: rotateX(45deg) rotateY(45deg); } to{ transform: rotateX(405deg) rotateY(405deg); } } .di1{(正方体的前面) background: rgb(21, 163, 52); transform: translateZ(150px);(沿着z轴向前移动150px) font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } .di2{(正方体的后面) background: blue; transform: translateZ(-150px) rotateY(180deg);(沿着z轴向前移动150px然后沿着y轴旋转180°*注意顺序哦是先移动后旋转) font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } .di3{(正方体的左面) background: purple; transform: rotateY(-90deg) translateZ(150px); font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } .di4{(正方体的右面) background: pink; transform: rotateY(90deg) translateZ(150px); font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } .di5{(正方体的上面) background: red; transform: rotateX(90deg) translateZ(150px); font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } .di6{(正方体的下面) background: yellow; transform: rotateX(-90deg) translateZ(150px); font-size:100px; font-family:KaiTi; text-align: center; line-height: 300px; } </style> </head> <body> <div> <div> (将正方体分为六个相同的面) <div class="role di1">前</div> <div class="role di2">后</div> <div class="role di3">左</div> <div class="role di4">右</div> <div class="role di5">上</div> <div class="role di6">下</div> </div> </div> </body> </html>
二、动态立体图片册
将图片册设计成立体3D的效果
利用旋转、移动、倾斜和3D效果让你的图册更加漂亮。
代码如下:
(将第一张定好位置后将后面的依次排列) <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>事例一</title> <style> body{ height: 100vh; } .div { height: 500px; width: 800px; perspective: 800px; margin: 50px auto; } .div1 { height: 500px; width: 800px; transform-style: preserve-3d; position: relative; /* transform: rotateY(-10deg); */ } .div_0{ height:400px; width:600px; position: absolute; margin-top:110px; margin-left:50px; } .div_1{ height:400px; width:600px; background: url(../day03/timg.jpg); background-size: 600px 400px; border-radius: 20px; transform-origin: right bottom; transition: 3s; } .div_2{ background: url(../day03/timg1.jpg); border-radius: 20px; background-size: 600px 400px; transform-origin: right bottom; transform: rotateZ(2deg) translateZ(-20px) translateX(20px) translateY(-20px); } .div_2:hover{ transform: rotateZ(0) translateZ(0)translateX(0)translateY(0); transition: 1s; } .div_2:hover~.div_1{ /* transform-origin: right bottom; */ transform: rotateZ(2deg) translateZ(20px) translateX(20px) translateY(-20px); transition: 1s; } /* body:hover .div_1{ opacity: 0; transition: 3s; } */ .div_3{ background: url(timg2.jpg); border-radius: 20px; background-size: 600px 400px; transform-origin: right bottom; transform: rotateZ(4deg)translateZ(-40px)translateX(40px)translateY(-40px); } .div_3:hover{ transform: rotateZ(0) translateZ(0)translateX(0)translateY(0); transition: 1s; } .div_4{ background: url(timg4.jpg); border-radius: 20px; background-size: 600px 400px; transform-origin: right bottom; transform: rotateZ(6deg)translateZ(-60px) translateX(60px)translateY(-60px); } .div_4:hover{ transform: rotateZ(0) translateZ(0)translateX(0)translateY(0); transition: 1s; } .div_5{ background: url(timg5.jpg); border-radius: 20px; background-size: 600px 400px; transform-origin: right bottom; transform: rotateZ(8deg)translateZ(-80px) translateX(80px)translateY(-80px); } .div_5:hover{ transform: rotateZ(0) translateZ(0)translateX(0)translateY(0); transition: 1s; } .div_6{ background: url(timg3.jpg) no-repeat; border-radius: 20px; background-size: 600px 400px; transform-origin: right bottom; transform: rotateZ(10deg)translateZ(-100px) translateX(100px)translateY(-100px); } .div_6:hover{ transform: rotateZ(0) translateZ(0)translateX(0)translateY(0); transition: 1s; } </style> </head> <body> <div> <div> <div class=" div_0 div_1"></div> <div class=" div_0 div_2"></div> <div class=" div_0 div_3"></div> <div class=" div_0 div_4"></div> <div class=" div_0 div_5"></div> <div class=" div_0 div_6"></div> </div> </div> </body> </html>
三、平面的星空
代码如下:
(由于没有用js所以只有平面的效果了
你掌握好旋转的中心点就很容易了)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>太阳系</title> <style> body { background: url(timg01.jpg) no-repeat; background-size: 100%; } .box1 { height: 600px; width: 600px; margin: 0 auto; border: 1px solid #ccc; border-radius: 50%; } .box1_0 { height: 100px; width: 100px; margin: 0 auto; border: 1px solid white; border-radius: 50%; position: absolute; top: calc(50% - 59px); left: 322px; transform-origin: 345.5px; animation: dong2 5s linear infinite 4s; } @keyframes dong2 { from { transform: rotate(0) } 100% { transform: rotate(360deg); } } .box1_2 { height: 13px; width: 13px; margin: 0 auto; /* border: 1px solid #ccc; */ border-radius: 50%; background: white; position: absolute; top: calc(50% - 7.5px); left: 96px; transform-origin: -45px; animation: dong3 5.5s linear infinite ; /* animation-iteration-count: 200; */ } @keyframes dong3 { from { transform: rotate(0); } 100% { transform: rotate(360deg); } } .box1_1 { height: 15px; width: 15px; margin: 0 auto; /* border: 1px solid #ccc; */ border-radius: 50%; background: rgb(7, 100, 223); position: absolute; top: 45px; left: calc(50% - 16.5px); } .box2 { height: 400px; width: 400px; margin: 0 auto; border: 1px solid #ccc; border-radius: 50%; position: absolute; top: calc(50% - 200px); left: calc(50% - 200px); } .box2_1 { height: 15px; width: 15px; margin: 0 auto; /* border: 1px solid #ccc; */ border-radius: 50%; background: rgb(198, 208, 221); position: absolute; top: calc(50% - 7.5px); left: 43px; transform-origin: 157.5px; animation: dong1 5s linear infinite .5s; } @keyframes dong1 { from { transform: rotate(0) } 100% { transform: rotate(360deg); } } .box2_2 { height: 15px; width: 15px; margin: 0 auto; border-radius: 50%; background: #644e11; position: absolute; top: calc(50% - 7.5px); left: -7px; transform-origin: 207.5px; animation: dong 5s linear infinite; } @keyframes dong { from { transform: rotate(0) } 100% { transform: rotate(360deg); } } .box3 { height: 300px; width: 300px; margin: 0 auto; border: 1px solid #ccc; border-radius: 50%; position: absolute; top: calc(50% - 150px); left: calc(50% - 150px); } .box4 { height: 30px; width: 30px; margin: 0 auto; border-radius: 50%; background: orange; position: absolute; top: calc(50% - 15px); left: calc(50% - 15px); } .boxli{ height: 900px; width: 900px; margin: 0 auto; border: 1px solid #ccc; border-radius: 50%; position: absolute; top:-120px; left:calc(50% - 450px); } .boxli_1{ height: 15px; width: 15px; margin: 0 auto; border-radius: 50%; background: rgb(116, 100, 56); position: absolute; top:500px; left:-6px; transform-origin: 455.5px -38px; animation: dongli 5s linear infinite; } @keyframes dongli { from { transform: rotate(0) } 100% { transform: rotate(360deg); } } </style> </head> <body> <div class="box1"> <div class="box1_0"> <div class="box1_2"></div> <div class="box1_1"></div> </div> <div class="box2"> <div class="box2_1"></div> <div class="box2_2"></div> <div class="box3"> <div class="box4"></div> </div> </div> </div> <div class="boxli"> <div class="boxli_1"></div> </div> </body> </html>
相关推荐:
以上是纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空)的详细内容。更多信息请关注PHP中文网其他相关文章!

我最近找到了一种动态更新任何产品图像的颜色的解决方案。因此,只有一种产品之一,我们可以以不同的方式对其进行着色以显示

在本周的综述中,灯塔在第三方脚本上阐明了灯光,不安全的资源将在安全站点上被阻止,许多国家连接速度

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

当您看到一些称为super()的JavaScript时,在子类中,您会使用super()调用其父母的构造函数和超级。访问它的


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。