css布局实现一个三维卧室效果代码
代码语言:html
所属分类:布局界面
代码描述:css布局实现一个三维卧室效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --bg1: #8DD9E7; --bg2: #86C6D3; --bg3: #5C8F9B; --floor1: #EBE4D1; --floor2: #c9c5b3; --floor3: #bab6a6; --floor4: #a49e82; --wall1: #E3EAF0; --wall2: #CCD8DD; --wall2b: #c0ccd0; --wall2c: #b1bec2; --wall3: #9aadb5; --wood1: #FEEFCD; --wood2: #E8CFA9; --wood3: #CDAC8C; --wood3b: #bfa183; --wood4: #a48669; --wood5: #996951; --white1: #EDEDE4; --white2: #D9DFD4; --white3: #c3c9be; --white4: #aeb4a9; --blue1: #4F8FC0; --blue2: #4383b4; --blue3: #3473a3; --blue4: #27618c; --black1: #474747; --black2: #393939; --black3: #222222; --black4: #1a1a1a; --green1: #89B863; --green2: #6faa40; --green3: #59a11f; --yellow1: #e9e35a; --yellow2: #dbd54d; --yellow3: #d5ce32; } /***********************/ /***********************/ /************************/ /* Mixin para crear cubo ( Caras siempre al frente ) */ /************************/ /************************/ /* Mixin para crear rueda */ /************************/ /***********************/ /***********************/ /***********************/ /***********************/ /**/ *, *::after, *::before { margin: 0; padding: 0; box-sizing: border-box; user-select: none; transform-style: preserve-3d; -webkit-tap-highlight-color: transparent; user-select: none; outline: none; appearance: none; } /* Generic */ body { display: flex; justify-content: center; align-items: center; width: 100%; height: 100vh; background-color: var(--bg1); overflow: hidden; } .face { position: absolute; } .flex { display: flex; justify-content: center; align-items: center; } /***************/ /***************/ .room, .shadows { position: absolute; width: 30vw; height: 45vw; transform: perspective(10000px) rotateX(60deg) rotateZ(55deg) translateZ(-8vw); transition: transform 100ms linear; } .shadow1, .shadow2, .shadow3, .shadow4, .shadow5, .shadow6 { position: absolute; top: 0vw; left: 0vw; background-color: var(--bg3); filter: blur(0.25vw); } .shadow1 { width: 30.25vw; height: 37.25vw; } .shadow2 { top: 37vw; left: 15vw; width: 15.25vw; height: 8.25vw; } .shadow3, .shadow4 { width: 12.25vw; height: 37.25vw; left: -12vw; background-color: transparent; background-image: linear-gradient(to left, var(--bg3), var(--bg2)); } .shadow4 { width: 25vw; height: 1.25vw; top: 37vw; left: -10vw; filter: blur(1vw); opacity: 0.75; } .shadow5 { top: -2vw; left: 27vw; width: 5vw; height: 5vw; background-color: transparent; background-image: radial-gradient(circle, var(--bg3), var(--bg2) 80%, transparent); border-radius: 50%; filter: blur(1vw); opacity: 0.5; } .shadow6 { top: 45vw; left: 15vw; width: 15.25vw; height: 1.25vw; background-color: transparent; background-image: linear-gradient(to bottom, var(--bg3), var(--bg2) 80%, transparent); transform-origin: bottom right; filter: blur(1vw); opacity: 0.75; } .os { position: absolute; filter: blur(0.2vw); background-image: linear-gradient(to bottom, var(--floor2), transparent); } .fs { position: absolute; width: 115%; height: 110%; background-image: linear-gradient(to bottom, var(--floor3), var(--floor4), var(--floor4)); filter: blur(0.175vw); } .lg { position: absolute; width: 5vw; height: 150%; transform: rotateZ(20deg); background-image: linear-gradient(to right, transparent, var(--white2), transparent); opacity: 0.35; filter: blur(0.5vw); } /***************/ /***************/ .at { position: absolute; top: 0vw; left: 0vw; width: 30vw; height: 37vw; } .at__front { width: 30vw; height: 0.6vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(36.4vw); } .at__back { width: 30vw; height: 0.6vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-30vw) translateY(-0.6vw); } .at__right { width: 37vw; height: 0.6vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(30vw) translateX(-37vw) translateY(-0.6vw); } .at__left { width: 37vw; height: 0.6vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.6vw); } .at__top { width: 30vw; height: 37vw; transform-origin: top left; transform: translateZ(0.6vw); } .at__bottom { width: 30vw; height: 37vw; transform-origin: top left; transform: rotateY(180deg) translateX(-30vw); } .at__top { overflow: hidden; } .at__top .os1 { width: 6vw; height: 100%; background-image: linear-gradient(to right, var(--floor3), transparent); } .at__top .os2 { width: 100%; height: 6vw; } .at__top .ws { position: absolute; filter: blur(0.45vw); background-color: var(--floor2); transform: skewX(-5deg); } .at__top .ws1, .at__top .ws2, .at__top .ws3 { left: 1.5vw; top: 1.5vw; width: 5vw; height: 20vw; } .at__top .ws2 { left: 27vw; } .at__top .ws3 { left: 52%; width: 0.5vw; } .at__top .ws4, .at__top .ws5 { left: 1.5vw; top: 1.5vw; width: 28vw; height: 6vw; } .at__top .ws5 { top: 15.75vw; } .at__top .ws6 { left: 9vw; top: 1.5vw; width: 14vw; height: 10vw; } .at__top .ws7 { right: 2vw; top: 1.5vw; width: 3vw; height: 6vw; } .ab { position: absolute; top: 37vw; right: 0vw; width: 15vw; height: 8vw; } .ab__front { width: 15vw; height: 0.6vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(7.4vw); } .ab__back { width: 15vw; height: 0.6vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-15vw) translateY(-0.6vw); } .ab__right { width: 8vw; height: 0.6vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(15vw) translateX(-8vw) translateY(-0.6vw); } .ab__left { width: 8vw; height: 0.6vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.6vw); } .ab__top { width: 15vw; height: 8vw; transform-origin: top left; transform: translateZ(0.6vw); } .ab__bottom { width: 15vw; height: 8vw; transform-origin: top left; transform: rotateY(180deg) translateX(-15vw); } .at__front, .ab__front { background-color: var(--wall3); } .at__back, .ab__back { background-color: var(--wall2); } .at__right, .ab__right { background-color: var(--wall2); } .at__left, .ab__left { background-color: var(--wall2c); } .at__top, .ab__top { background-color: var(--floor1); } .at__bottom, .ab__bottom { background-color: var(--wall3); } /********/ .bb, .bbl, .bbr, .bt { position: absolute; top: 0; left: 1.5vw; width: 28.5vw; height: 1.5vw; transform: translateZ(0.6vw); } .bb__front, .bbl__front, .bbr__front, .bt__front { width: 28.5vw; height: 3vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(-1.5vw); } .bb__back, .bbl__back, .bbr__back, .bt__back { width: 28.5vw; height: 3vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-28.5vw) translateY(-3vw); } .bb__right, .bbl__right, .bbr__right, .bt__right { width: 1.5vw; height: 3vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(28.5vw) translateX(-1.5vw) translateY(-3vw); } .bb__left, .bbl__left, .bbr__left, .bt__left { width: 1.5vw; height: 3vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-3vw); } .bb__top, .bbl__top, .bbr__top, .bt__top { width: 28.5vw; height: 1.5vw; transform-origin: top left; transform: translateZ(3vw); } .bb__bottom, .bbl__bottom, .bbr__bottom, .bt__bottom { width: 28.5vw; height: 1.5vw; transform-origin: top left; transform: rotateY(180deg) translateX(-28.5vw); } .bb__front, .bbl__front, .bbr__front, .bt__front { background-color: var(--wall2b); } .bb__front .os1, .bbl__front .os1, .bbr__front .os1, .bt__front .os1 { width: 100%; height: 100%; bottom: 0; background-image: linear-gradient(to top, var(--wall2c), transparent); } .bb__front .os2, .bbl__front .os2, .bbr__front .os2, .bt__front .os2 { width: 100%; height: 1vw; bottom: 0; background-image: linear-gradient(to top, var(--wall3), transparent); } .bb__back .os1, .bbl__back .os1, .bbr__back .os1, .bt__back .os1 { width: 100%; height: 6vw; bottom: 0; background-image: linear-gradient(to top, var(--wall2b), transparent); } .bt { transform: translateZ(12.6vw); } .bbl, .bbr { position: absolute; top: 0; left: 1.5vw; width: 3vw; height: 1.5vw; transform: translateZ(3.6vw); } .bbl__front, .bbr__front { width: 3vw; height: 9vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(-7.5vw); } .bbl__back, .bbr__back { width: 3vw; height: 9vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-3vw) translateY(-9vw); } .bbl__right, .bbr__right { width: 1.5vw; height: 9vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(3vw) translateX(-1.5vw) translateY(-9vw); } .bbl__left, .bbr__left { width: 1.5vw; height: 9vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-9vw); } .bbl__top, .bbr__top { width: 3vw; height: 1.5vw; transform-origin: top left; transform: translateZ(9vw); } .bbl__bottom, .bbr__bottom { width: 3vw; height: 1.5vw; transform-origin: top left; transform: rotateY(180deg) translateX(-3vw); } .bbr { left: 27vw; } .bl { position: absolute; top: 0; left: 0; width: 1.5vw; height: 37vw; transform: translateZ(0.6vw); } .bl__front { width: 1.5vw; height: 15vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(22vw); } .bl__back { width: 1.5vw; height: 15vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-1.5vw) translateY(-15vw); } .bl__right { width: 37vw; height: 15vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(1.5vw) translateX(-37vw) translateY(-15vw); } .bl__left { width: 37vw; height: 15vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-15vw); } .bl__top { width: 1.5vw; height: 37vw; transform-origin: top left; transform: translateZ(15vw); } .bl__bottom { width: 1.5vw; height: 37vw; transform-origin: top left; transform: rotateY(180deg) translateX(-1.5vw); } .bl__front { background-color: var(--wall3); } .bl__right { overflow: hidden; } .bl__right .os0 { position: absolute; width: 50%; height: 200%; bottom: -74%; left: 72%; transform: rotateZ(55deg); background-image: linear-gradient(to top, var(--wall2), var(--wall2b)); } .bl__right .os1 { width: 100%; height: 10vw; bottom: 0; background-image: linear-gradient(to top, var(--wall2b), var(--wall2b), transparent); } .bl__right .os2 { width: 100%; height: 1vw; bottom: 0; background-image: linear-gradient(to top, var(--wall3), var(--wall2b)); } .bl__right .os3 { width: 10.25vw; height: 4.25vw; bottom: 0; left: 1.75vw; background-image: linear-gradient(to top, var(--wall3), var(--wall2c)); } .bl__right .os4 { width: 8.25vw; height: 5vw; top: 2.5vw; left: 2.75vw; background-image: linear-gradient(to top, var(--wall3), var(--wall2c)); } .bl__right .os5 { width: 4.5vw; height: 4.5vw; bottom: 0; left: 12vw; background-image: linear-gradient(to top, var(--wall3), var(--wall2c)); } .bl__right .os6 { width: 19.5vw; height: 12.35vw; bottom: 0; right: 1.25vw; background-image: linear-gradient(to top, var(--wall2c), var(--wall2c)); } .bl__left .os1 { width: 100%; height: 6vw; bottom: 0; background-image: linear-gradient(to top, var(--wall2c), transparent); } .bb__back, .bt__back, .bbl__back, .bbr__back, .bl__back { background-color: var(--wall2); } .bb__right, .bt__right, .bbl__right, .bbr__right, .bl__right { background-color: var(--wall2); } .bb__left, .bt__left, .bbl__left, .bbr__left, .bl__left { background-color: var(--wall2b); } .bb__top, .bt__top, .bbl__top, .bbr__top, .bl__top { background-color: var(--wall1); } .bb__bottom, .bt__bottom, .bbl__bottom, .bbr__bottom, .bl__bottom { background-color: var(--wall3); } .bb__top { background-color: var(--wall2); } .ventana { position: absolute; top: 0; left: 4.5vw; width: 22.5vw; height: 1.5vw; transform: translateZ(3.6vw); } .ventana__front { width: 22.5vw; height: 9vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(-7.5vw); } .ventana__back { width: 22.5vw; height: 9vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-22.5vw) translateY(-9vw); } .ventana__right { width: 1.5vw; height: 9vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(22.5vw) translateX(-1.5vw) translateY(-9vw); } .ventana__left { width: 1.5vw; height: 9vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-9vw); } .ventana__top { width: 22.5vw; height: 1.5vw; transform-origin: top left; transform: translateZ(9vw); } .ventana__bottom { width: 22.5vw; height: 1.5vw; transform-origin: top left; transform: rotateY(180deg) translateX(-22.5vw); } .ventana__back { top: 0.75vw; background-image: radial-gradient(var(--bg2), var(--bg3)); opacity: 0.5; overflow: hidden; } .ventana__back .lg1 { left: 60%; } .ventana__back .lg2 { width: 15vw; left: -20%; border-radius: 50%; } .ventana__back .vs { position: absolute; opacity: 0.65; filter: blur(0.25vw); } .ventana__back .vs1 { width: 4vw; height: 100%; right: 0; background-image: linear-gradient(to right, var(--wood1), var(--wood3)); } .ventana__back .vs2 { width: 14vw; height: 2vw; right: 4.5vw; bottom: 0; background-image: linear-gradient(to right, var(--blue1), var(--blue1)); } .ventana__back .vs3 { width: 6vw; height: 6vw; right: 4.5vw; top: -2vw; border-radius: 50%; background-image: radial-gradient(circle, var(--bg1), var(--bg1)); filter: blur(0.35vw); } .ventana__back .vs4 { width: 2.5vw; height: 2vw; bottom: 0; background-image: radial-gradient(circle, var(--white1), var(--white1)); opacity: 0.5; } .ventana-l, .ventana-c, .ventana-r { position: absolute; top: 0.5vw; width: 0.5vw; height: 0.5vw; } .ventana-l__front, .ventana-c__front, .ventana-r__front { width: 0.5vw; height: 9vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(-8.5vw); } .ventana-l__back, .ventana-c__back, .ventana-r__back { width: 0.5vw; height: 9vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-0.5vw) translateY(-9vw); } .ventana-l__right, .ventana-c__right, .ventana-r__right { width: 0.5vw; height: 9vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(0.5vw) translateX(-0.5vw) translateY(-9vw); } .ventana-l__left, .ventana-c__left, .ventana-r__left { width: 0.5vw; height: 9vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-9vw); } .ventana-l__top, .ventana-c__top, .ventana-r__top { width: 0.5vw; height: 0.5vw; transform-origin: top left; transform: translateZ(9vw); } .ventana-l__bottom, .ventana-c__bottom, .ventana-r__bottom { width: 0.5vw; height: 0.5vw; transform-origin: top left; transform: rotateY(180deg) translateX(-0.5vw); } .ventana-l__front, .ventana-c__front, .ventana-r__front { background-color: var(--white1); } .ventana-l__back, .ventana-c__back, .ventana-r__back { background-color: var(--white1); } .ventana-l__right, .ventana-c__right, .ventana-r__right { background-color: var(--white2); } .ventana-l__left, .ventana-c__left, .ventana-r__left { background-color: var(--white2); } .ventana-l__top, .ventana-c__top, .ventana-r__top { background-color: var(--white1); } .ventana-l__bottom, .ventana-c__bottom, .ventana-r__bottom { background-color: var(--white1); } .ventana-l { left: 0; } .ventana-c { left: 50%; } .ventana-r { right: 0; } .ventana-b, .ventana-t { position: absolute; left: 0.5vw; top: 0.5vw; width: 22vw; height: 0.5vw; } .ventana-b__front, .ventana-t__front { width: 22vw; height: 0.5vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(0vw); } .ventana-b__back, .ventana-t__back { width: 22vw; height: 0.5vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-22vw) translateY(-0.5vw); } .ventana-b__right, .ventana-t__right { width: 0.5vw; height: 0.5vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(22vw) translateX(-0.5vw) translateY(-0.5vw); } .ventana-b__left, .ventana-t__left { width: 0.5vw; height: 0.5vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.5vw); } .ventana-b__top, .ventana-t__top { width: 22vw; height: 0.5vw; transform-origin: top left; transform: translateZ(0.5vw); } .ventana-b__bottom, .ventana-t__bottom { width: 22vw; height: 0.5vw; transform-origin: top left; transform: rotateY(180deg) translateX(-22vw); } .ventana-b__front, .ventana-t__front { background-color: var(--white1); } .ventana-b__back, .ventana-t__back { background-color: var(--white1); } .ventana-b__right, .ventana-t__right { background-color: var(--white2); } .ventana-b__left, .ventana-t__left { background-color: var(--white2); } .ventana-b__top, .ventana-t__top { background-color: var(--white2); } .ventana-b__bottom, .ventana-t__bottom { background-color: var(--white1); } .ventana-t { transform: translateZ(8.5vw); } /***************/ .cama { position: absolute; top: 25vw; left: 1.75vw; width: 15vw; height: 10vw; transform: translateZ(0.6vw); } .cama .fs { width: 102%; height: 102%; background-image: linear-gradient(to bottom, var(--floor2), var(--floor2)); } .cama-al { position: absolute; top: 0; left: 0; width: 0.75vw; height: 10vw; } .cama-al__front { width: 0.75vw; height: 4vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(6vw); } .cama-al__back { width: 0.75vw; height: 4vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-0.75vw) translateY(-4vw); } .cama-al__right { width: 10vw; height: 4vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(0.75vw) translateX(-10vw) translateY(-4vw); } .cama-al__left { width: 10vw; height: 4vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-4vw); } .cama-al__top { width: 0.75vw; height: 10vw; transform-origin: top left; transform: translateZ(4vw); } .cama-al__bottom { width: 0.75vw; height: 10vw; transform-origin: top left; transform: rotateY(180deg) translateX(-0.75vw); } .cama-ac { position: absolute; top: 0.5vw; left: 0.75vw; width: 13.5vw; height: 9vw; transform: translateZ(0.5vw); } .cama-ac__front { width: 13.5vw; height: 1vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(8vw); } .cama-ac__back { width: 13.5vw; height: 1vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-13.5vw) translateY(-1vw); } .cama-ac__right { width: 9vw; height: 1vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(13.5vw) translateX(-9vw) translateY(-1vw); } .cama-ac__left { width: 9vw; height: 1vw; transform-.........完整代码请登录后点击上方下载按钮下载查看
网友评论0