纯CSS 常见3D实例
一、正方体
我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造。(据体构造在代码中)
成平图如下:
代码如下:
<!DOCTYPE html>
<html lang="en">
<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 class="d3">
<div class="stage">
(将正方体分为六个相同的面)
<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 lang="en">
<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 class="div">
<div class="div1">
<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 lang="en">
<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实例的更多相关文章
- 纯CSS实现3D正方体动画效果
前言 纯CSS实现3D正方体动画效果,此方法是通过transform的旋转(rotate)和位移(translate)实现的,具体效果是鼠标滑过时正方体的一个面会产生位移 效果图
- 纯CSS实现3D按钮效果
今天分享一个用纯CSS实现的3D按钮.css巧妙利用了box-shadow来实现3D物体的立体感,当按钮按下的时候再去修改box-shadow和top值.让人感觉有一种按钮被按下的感觉.css代码非常 ...
- 纯CSS实现3D图像轮转
CSS演武场今天继续,今天看一个纯css实现的3D图像轮转效果,请大家猛戳研究效果先,也可下载收藏先. 首先看html文件,div.billboard为效果的容器,利用10个div.poster分割图 ...
- 纯CSS做3D旋转魔方
昨天偶然看见网友(简单说 用CSS做一个魔方旋转的效果)做的一个3D旋转魔方 效果就是本博客右侧公告栏所示 在这里把做法展现出来 感兴趣的可以试试 做成自己特有的魔方 <!DOCTYPE h ...
- 纯CSS绘制3D立方体
本篇记录的是使用CSS3绘制3D立方体,并旋转起来. 我的思路: 1️⃣ 首先,用div元素画6个正方形摞在一起放在画布中间.为了区分,分别给每个div选择了不同的颜色,并且设置为半透明方便透视. 2 ...
- 纯CSS实现3D照片墙
HTML部分: <body> <div class="photo-wrap"> <!-- 舞台 --> <div class=" ...
- 纯css实现3D字体
下面分别是html,css和js代码: <div class="wrapper"> <h1 contenteditable data-heading=" ...
- 纯 CSS 实现三角形尖角箭头的实例
上次无意中发现了个使用纯 CSS 实现三角形尖角箭头的方法 http://blog.csdn.net/zhouzme/article/details/18901943 ,但没有怎么用上,也没有详细完整 ...
- 纯CSS炫酷的3D旋转
<html><head><meta charset="utf-8"><title>纯CSS炫酷的3D旋转</title> ...
随机推荐
- 夜雨惊风 Linux下卸载openjdk,安装jdk
1.查看java版本 1 2 3 4 [root@CFDB2 ~]# java -version openjdk version "1.8.0_171" OpenJDK Runti ...
- CodeForce-1196D2-RGB Substring (hard version)
原题链接 题目大意与上题完全一样,只是数据规模更大. 思路: 再用上题的暴力肯定TLE,所以需要优化一下搜索过程.上一题我们是外层遍历n,内层遍历3种情况.这题我们外层遍历3种情况,内层遍历数组,记录 ...
- github信息安全开源课
尽可能的减少信息差:兄弟们,该知足了,这些资源非常的宝贵了. ### github探索-主题-令人敬畏的名单 令人敬畏的名单: https://github.com/topics/awesome 进入 ...
- Mac011--DbWrench Database安装
Mac--DbWrench Database安装 DbWrench <=> powerdesigner 下载网址:http://dbwrench.com/download/install/ ...
- [Codeforces712D] Memory and Scores(DP+前缀和优化)(不用单调队列)
[Codeforces712D] Memory and Scores(DP+前缀和优化)(不用单调队列) 题面 两个人玩游戏,共进行t轮,每人每轮从[-k,k]中选出一个数字,将其加到自己的总分中.已 ...
- P4158[SCOI2009]粉刷匠
题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个格子最多只能被 ...
- HDU 1255 覆盖的面积 ( 扫描线 + 离散 求矩阵大于k次面积并 )
覆盖的面积 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- 贪心策略---买卖股票的最大收益 II
买卖股票的最大收益 II 122. Best Time to Buy and Sell Stock II (Easy) 题目描述: 可以进行多次交易,多次交易之间不能交叉进行,可以进行多次交易. ...
- 2019-9-2-win10-uwp-打电话
title author date CreateTime categories win10 uwp 打电话 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17 ...
- 任务管理器taskmgr查看几核