css布局实现一个三维3d别墅效果代码

代码语言:html

所属分类:布局界面

代码描述:css布局实现一个三维3d别墅效果代码

代码标签: 一个 三维 3d 别墅 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开


<!DOCTYPE html>
<html lang="en" >

<head>

  <meta charset="UTF-8">

  
  
  
  
<style>
:root {
  --bg1:12,20,84;
  --bg2:13,14,69;
  --bg3:7,5,48;
  --shadow-floor-1:6,2,27;
  --shadow-floor-2:13,6,54;
  --light-floor-1:41,38,61;
  --light-floor-2:83,106,119;
  --light-floor-3:158,111,189;
  --light-floor-4:13,86,70;
  --light-floor-5:0,0,150;
  --w1:200,200,200;
  --w2:150,150,190;
  --w3:90,90,115;
  --b1:59,59,59;
  --b2:23,35,51;
  --b3:2,6,25;
  --water1:51,163,207;
  --water2:63,120,162;
  --window:215,247,247;
  --lamp:214,249,249;
  --crystal:15,22,36;
}

*, :after, :before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-user-select: none;
  user-select: none;
  transform-style: preserve-3d;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  background-image: radial-gradient(circle, #090f42, #030324, #020114);
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.1s linear;
}

.face {
  position: absolute;
}

.input {
  position: fixed;
  bottom: 4vw;
  left: 4vw;
  transform: translateZ(20000px);
  display: none;
}

@media (max-width: 600px) {
  .input {
    left: calc(50% - 50px);
  }
}
.input__label {
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}

.input__checkbox {
  position: relative;
  width: 100px;
  height: 50px;
  border-radius: 25px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #020411;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition: 1s;
}

.input__checkbox:checked {
  background-color: #8a95ee;
}

.input__checkbox:checked + .input__label .bg {
  background-color: #101a6f;
}

.input__checkbox:before {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  top: 50%;
  left: 8px;
  transform: translateY(-50%);
  border-radius: 50%;
  border: 2px solid #ffffff;
  transition: 1s;
}

.input__checkbox:checked:before {
  left: calc(100% - 42px);
}

.lamp-b {
  position: absolute;
  width: 0.5vw;
  height: 0.5vw;
  border-radius: 50%;
  background-color: #d6f9f9;
  border: 0.1vw solid rgba(90, 90, 115, 0.25);
  box-shadow: 0.6vw 0.6vw 0.85vw #d6f9f9,-0.6vw 0.6vw 0.85vw #d6f9f9,0.6vw -0.6vw 0.85vw #d6f9f9,-0.6vw -0.6vw 0.85vw #d6f9f9;
}

.lamp-t {
  position: absolute;
  width: 0.5vw;
  height: 2.5vw;
  border-radius: 50%;
  background-image: linear-gradient(to top, transparent, rgba(214, 249, 249, 0.8));
  border: 0.1vw solid rgba(90, 90, 115, 0.25);
  filter: blur(0.3vw);
}

.lamp-t:after, .lamp-t:before {
  content: "";
  position: absolute;
  bottom: 0.1vw;
  width: 200%;
  height: 3vw;
  border-radius: 50%;
  background-image: linear-gradient(to top, transparent, rgba(214, 249, 249, 0.5), rgba(214, 249, 249, 0.2));
  box-shadow: 0.15vw 0.15vw 1.5vw rgba(214, 249, 249, 0.2), -0.15vw 0.15vw 1.5vw rgba(214, 249, 249, 0.2), 0.15vw -0.15vw 1.5vw rgba(214, 249, 249, 0.2), -0.15vw -0.15vw 1.5vw rgba(214, 249, 249, 0.2);
}

.lamp-t:before {
  transform-origin: bottom left;
  transform: rotateZ(-10deg);
}

.lamp-t:after {
  transform-origin: bottom left;
  transform: rotateZ(10deg);
}

.house, .lamps, .shadows {
  position: absolute;
  width: 30vw;
  height: 35vw;
  transform: perspective(10000px) rotateX(60deg) rotateZ(45deg) translateZ(-10vw);
}

@keyframes h {
  0% {
    transform: perspective(10000px) rotateX(60deg) rotateZ(40deg) translateZ(-10vw);
  }
}
.shadows {
  width: 34vw;
  height: 39vw;
  margin-top: 3vw;
}

.shadow {
  position: absolute;
}

.shadow-1 {
  top: -1vw;
  left: 0;
  width: 31.5vw;
  height: 37vw;
  background-color: rgba(6, 2, 27, 0.7);
  filter: blur(0.35vw);
}

.shadow-2 {
  bottom: 1vw;
  left: -2vw;
  width: 36vw;
  height: 42vw;
  background-color: rgba(13, 6, 54, 0.25);
  filter: blur(1vw);
}

.light {
  position: absolute;
}

.light-1 {
  bottom: -15vw;
  left: 15vw;
  width: 10vw;
  height: 20vw;
  border-radius: 50%;
  transform: rotateZ(-45deg);
  background-image: linear-gradient(to bottom, rgba(0, 0, 150, 0.2), rgba(0, 0, 150, 0.2));
  filter: blur(0.95vw);
}

.light-2 {
  bottom: -25vw;
  width: 40vw;
  height: 40vw;
  border-radius: 50%;
  transform: rotateZ(-45deg);
  background-image: radial-gradient(rgba(0, 0, 150, 0.05), rgba(0, 0, 150, 0.05));
  filter: blur(1vw);
}

.light-3 {
  bottom: 5vw;
  left: 20vw;
  width: 30vw;
  height: 30vw;
  border-radius: 50%;
  transform: rotateZ(-60deg);
  background-image: radial-gradient(rgba(0, 0, 150, 0.3) 50%, rgba(6, 2, 27, 0.1), rgba(13, 86, 70, 0.2));
  box-shadow: 1vw 1vw 1vw rgba(0, 0, 150, 0.1), -1vw 1vw 1vw rgba(0, 0, 150, 0.1), 1vw -1vw 1vw rgba(0, 0, 150, 0.1), -1vw -1vw 1vw rgba(0, 0, 150, 0.1);
  filter: blur(1vw);
}

.light-4 {
  bottom: -25vw;
  right: 24vw;
  width: 50vw;
  height: 50vw;
  transform: rotateZ(-25deg);
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(214, 249, 249, 0.075), rgba(214, 249, 249, 0.075));
  filter: blur(0.4vw);
}

.light-5 {
  width: 20vw;
  height: 20vw;
  left: -15vw;
  bottom: -1vw;
  border-radius: 50%;
}

.lamps {
  width: 34vw;
  height: 38vw;
}

.lamps .lamp-b {
  box-shadow: none;
  box-shadow: 0.5vw -0.5vw 1.75vw rgba(214, 249, 249, 0.8), -0.5vw -0.5vw 1.75vw rgba(214, 249, 249, 0.8), 0.5vw 0.5vw 1.75vw rgba(214, 249, 249, 0.8), -0.5vw 0.5vw 1.75vw rgba(214, 249, 249, 0.8);
}

.lamps .lamp-b-1 {
  bottom: 0;
  left: 0;
}

.lamps .lamp-b-2 {
  bottom: 0;
  right: 0;
}

.lamps .lamp-b-3 {
  top: 0;
  left: 0;
}

.lamps .lamp-b-4 {
  top: 0;
  right: 0;
}

.a1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 30vw;
  height: 35vw;
}

.a1__front {
  width: 30vw;
  height: 1.5vw;
  transform-origin: bottom left;
  transform: rotateX(-90deg) translateZ(33.5vw);
}

.a1__back {
  width: 30vw;
  height: 1.5vw;
  transform-origin: top left;
  transform: rotateX(-90deg) rotateY(180deg) translateX(-30vw) translateY(-1.5vw);
}

.a1__right {
  width: 35vw;
  height: 1.5vw;
  transform-origin: top left;
  transform: rotateY(90deg) rotateZ(-90deg) translateZ(30vw) translateX(-35vw) translateY(-1.5vw);
}

.a1__left {
  width: 35vw;
  height: 1.5vw;
  transform-origin: top left;
  transform: rotateY(-90deg) rotateZ(90deg) translateY(-1.5vw);
}

.a1__top {
  width: 30vw;
  height: 35vw;
  transform-origin: top left;
  transform: translateZ(1.5vw);
}

.a1__bottom {
  width: 30vw;
  height: 35vw;
  transform-origin: top left;
  transform: rotateY(180deg) translateX(-30vw);
}

.a1__r1 {
  position: absolute;
  bottom: 1vw;
  left: -4vw;
  width: 33vw;
  height: 7vw;
  transform-origin: top left;
  transform: skewX(45deg);
  background-image: linear-gradient(to bottom, rgba(200, 200, 200, 0.1), rgba(200, 200, 200, 0.02));
  border-top-left-radius: 7vw;
}

.a1__r2 {
  position: absolute;
  bottom: 1vw;
  right: -2vw;
  width: 6vw;
  height: 32vw;
  transform-origin: bottom right;
  transform: skewY(45deg);
  background-image: linear-gradient(to right, rgba(200, 200, 200, 0.1), rgba(200, 200, 200, 0.01));
}

.a1__front {
  background-color: #9696be;
  overflow: hidden;
}

.a1__front--s1 {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(13, 86, 70, 0.55), transparent 70%, rgba(6, 2, 27, 0.5));
}

.a1__front--s2 {
  width: 8vw;
  height: 8vw;
  left: -1vw;
  bottom: -1vw;
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(158, 111, 189, 0.3), rgba(214, 249, 249, 0.5));
  box-shadow: 0.5vw 0.5vw 2vw rgba(214, 249, 249, 0.2), -0.5vw 0.5vw 2vw rgba(214, 249, 249, 0.2), 0.5vw -0.5vw 2vw rgba(214, 249, 249, 0.2), -0.5vw -0.5vw 2vw rgba(214, 249, 249, 0.2);
  filter: blur(1vw);
}

.a1__front--s3, .a1__front--s4 {
  width: 2vw;
  height: 2vw;
  border-radius: 50%;
  background-color: rgba(214, 249, 249, 0.4);
  filter: blur(0.75vw);
}

.a1__front--s3 {
  left: -0.5vw;
}

.a1__front--s4 {
  right: -0.5vw;
}

.a1__back {
  background-color: #9696be;
}

.a1__right {
  background-color: #5a5a73;
  overflow: hidden;
}

.a1__right--s1 {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(41, 38, 61, 0.4), rgba(158, 111, 189, 0.4) 50%);
}

.a1__right--s2, .a1__right--s3 {
  width: 2vw;
  height: 2vw;
  border-radius: 50%;
  background-color: rgba(214, 249, 249, 0.35);
  filter: blur(0.75vw);
}

.a1__right--s2 {
  left: -0.5vw;
}

.a1__right--s3 {
  right: -0.5vw;
}

.a1__left {
  background-color: #5a5a73;
}

.a1__top {
  background-color: #c8c8c8;
  overflow: hidden;
}

.a1__top--s1 {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(13, 86, 70, 0.25), transparent 70%, rgba(158, 111, 189, 0.1));
}

.a1__top--s2 {
  width: 24vw;
  height: 5vw;
  left: -1vw;
  bottom: 0;
  transform-origin: right;
  transform: skewX(-25deg);
  background-image: linear-gradient(to right, rgba(6, 2, 27, 0.075), rgba(6, 2, 27, 0.05));
}

.a1__top--s3 {
  width: 20vw;
  height: 15vw;
  left: -11vw;
  bottom: -7vw;
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(158, 111, 189, 0.3), rgba(214, 249, 249, 0.5));
  box-shadow: 0.5vw 0.5vw 2vw rgba(214, 249, 249, 0.2), -0.5vw 0.5vw 2vw rgba(214, 249, 249, 0.2), 0.5vw -0.5vw 2vw rgba(214, 249, 249, 0.2), -0.5vw -0.5vw 2vw rgba(214, 249, 249, 0.2);
  filter: blur(1vw);
}

.a1__top--s4 {
  right: -3vw;
  top: -0.5vw;
  width: 70%;
  height: 120%;
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(158, 111, 189, 0.3), rgba(0, 0, 150, 0.3));
  filter: blur(1.4vw);
}

.a1__top .lamp-b {
  bottom: 4.25vw;
}

.a1__top .lamp-b-1 {
  right: 7vw;
}

.a1__top .lamp-b-2 {
  right: 9.5vw;
}

.a1__top .lamp-b-3 {
  right: 12vw;
}

.a1__top .lamp-b-4 {
  right: 14.5vw;
}

.a1__top .lamp-b-5 {
  right: 17vw;
}

.a1__bottom {
  background-color: #9696be;
}

.b1 {
  transform: translateZ(1.5vw);
  position: absolute;
  top: 0;
  left: 0;
  width: 30vw;
  height: 20vw;
}

.b1__front {
  width: 30vw;
  height: 5vw;
  transform-origin: bottom left;
  transform: rotateX(-90deg) translateZ(15vw);
}

.b1__back {
  width: 30vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateX(-90deg) rotateY(180deg) translateX(-30vw) translateY(-5vw);
}

.b1__right {
  width: 20vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateY(90deg) rotateZ(-90deg) translateZ(30vw) translateX(-20vw) translateY(-5vw);
}

.b1__left {
  width: 20vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateY(-90deg) rotateZ(90deg) translateY(-5vw);
}

.b1__top {
  width: 30vw;
  height: 20vw;
  transform-origin: top left;
  transform: translateZ(5vw);
}

.b1__bottom {
  width: 30vw;
  height: 20vw;
  transform-origin: top left;
  transform: rotateY(180deg) translateX(-30vw);
}

.b1__front {
  background-color: #9696be;
}

.b1__back {
  background-color: #9696be;
}

.b1__right {
  background-color: #5a5a73;
  overflow: hidden;
}

.b1__right--s1 {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, rgba(158, 111, 189, 0.2), rgba(158, 111, 189, 0.3));
}

.b1__left {
  background-color: #5a5a73;
}

.b1__top {
  background-color: #c8c8c8;
  overflow: hidden;
}

.b1__top--s1 {
  right: 3.5vw;
  top: -0.5vw;
  width: 4vw;
  height: 15vw;
  background-image: linear-gradient(to right, rgba(0, 0, 150, 0.5), rgba(0, 0, 150, 0.1));
  transform: skewY(-10deg);
  filter: blur(0.15vw);
}

.b1__top--s2 {
  right: -3vw;
  top: -0.5vw;
  width: 70%;
  height: 120%;
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(158, 111, 189, 0.6), rgba(0, 0, 150, 0.45));
  filter: blur(1.4vw);
}

.b1__top--s3 {
  left: -3vw;
  top: -0.5vw;
  width: 60%;
  height: 120%;
  border-radius: 50%;
  background-image: linear-gradient(to right, rgba(41, 38, 61, 0.7), rgba(15, 22, 36, 0.2), rgba(0, 0, 150, 0.5));
  filter: blur(1.4vw);
}

.b1__top--s4 {
  width: 100%;
  height: 100%;
  background-image: linear-gradient(to right, #d7f7f7, #d7f7f7);
}

.b1__top--s5 {
  width: 24vw;
  height: 7vw;
  left: -1vw;
  bottom: 0;
  transform-origin: right;
  transform: skewX(-25deg);
  background-image: linear-gradient(to right, rgba(6, 2, 27, 0.08), rgba(6, 2, 27, 0.08));
}

.b1__top .lamp-b {
  top: 1vw;
}

.b1__top .lamp-b-1 {
  right: 1vw;
}

.b1__top .lamp-b-2 {
  right: 5vw;
}

.b1__top .lamp-b-3 {
  top: 13vw;
  right: 5vw;
}

.b1__bottom {
  background-color: #9696be;
}

.b2 {
  transform: translateZ(1.5vw);
  position: absolute;
  top: 20vw;
  left: 0;
  width: 12vw;
  height: 10vw;
}

.b2__front {
  width: 12vw;
  height: 5vw;
  transform-origin: bottom left;
  transform: rotateX(-90deg) translateZ(5vw);
}

.b2__back {
  width: 12vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateX(-90deg) rotateY(180deg) translateX(-12vw) translateY(-5vw);
}

.b2__right {
  width: 10vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateY(90deg) rotateZ(-90deg) translateZ(12vw) translateX(-10vw) translateY(-5vw);
}

.b2__left {
  width: 10vw;
  height: 5vw;
  transform-origin: top left;
  transform: rotateY(-90deg) rotateZ(90deg) translateY(-5vw);
}

.b2__top {
  width: 12vw;
  height: 10vw;
  transform-origin: top left;
  transform: translateZ(5vw);
}

.b2__bottom {
  width: 12vw;
  height: 10vw;
  transform-origin: top left;
  transform: rotateY(180deg) translateX(-12vw);
}

.b2__front {
  background-color: #9696be;
  overflow: hidden;
}

.b2__front--s1 {
  width: 100%;
  height.........完整代码请登录后点击上方下载按钮下载查看

网友评论0