div+css布局实现三维房子模型效果
代码语言:html
所属分类:三维
代码描述:div+css布局实现三维房子模型效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> /***********************/ /***********************/ /************************/ /* Mixin para crear cubo ( Caras siempre al frente ) */ /************************/ /***********************/ /***********************/ /**/ *, *::after, *::before { margin: 0; padding: 0; box-sizing: border-box; user-select: none; transform-style: preserve-3d; -webkit-tap-highlight-color: transparent; } /* Generic */ body { display: flex; justify-content: center; align-items: center; width: 100%; height: 100vh; overflow: hidden; background-color: #C6C5E1; cursor: pointer; } .face { position: absolute; } /***************/ .house { position: absolute; width: 36vw; height: 24vw; transform: perspective(20000px) rotateX(75deg) rotateZ(35deg) translateZ(-9vw); transition: transform .1s linear; } .shadows { width: 100%; height: 100%; overflow: hidden; } .shadow-a { position: absolute; right: 0; bottom: 0; width: 130%; height: 103%; transform-origin: top right; transform: skewY(-3deg); background-color: #686688; box-shadow: -1vw 1vw 1.5vw #686688; filter: blur(0.5vw); } .shadow-b { position: absolute; top: 0; width: 100%; height: 101.5%; background-color: #5f5d7c; } /***************/ /***************/ .al { width: 3vw; height: 24vw; position: absolute; left: 0; top: 0; } .al__front { width: 30vw; height: 0.4vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(23.6vw); } .al__back { width: 30vw; height: 0.4vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-30vw) translateY(-0.4vw); } .al__right { width: 24vw; height: 0.4vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(30vw) translateX(-24vw) translateY(-0.4vw); } .al__left { width: 24vw; height: 0.4vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.4vw); } .al__top { width: 30vw; height: 24vw; transform-origin: top left; transform: translateZ(0.4vw); } .al__bottom { width: 30vw; height: 24vw; transform-origin: top left; transform: rotateY(180deg) translateX(-30vw); } .al__front { background-image: linear-gradient(to right, #8985ad, #c4c2d6); } .al__back { background-color: #c4c2d6; } .al__right { background-color: #fbfbfb; } .al__left { background-color: #7a76a3; } .al__top { background-image: linear-gradient(to right, #a7a4c2 40%, #e5e5e5, #f2f2f2); } .al__top::before { content: ''; position: absolute; bottom: 0; width: 13vw; height: 7vw; background-image: linear-gradient(-135deg, transparent 20%, rgba(169, 215, 207, 0.75)); } .al__top::after { content: ''; position: absolute; bottom: 1vw; left: 6vw; width: 5vw; height: 5vw; border-radius: 50%; background-image: radial-gradient(rgba(251, 251, 251, 0.25), transparent); filter: blur(0.7vw); } .al__bottom { background-color: #c4c2d6; } .ab { width: 8vw; height: 8vw; position: absolute; right: 0; bottom: 0; } .ab__front { width: 8vw; height: 0.4vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(7.6vw); } .ab__back { width: 8vw; height: 0.4vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-8vw) translateY(-0.4vw); } .ab__right { width: 8vw; height: 0.4vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(8vw) translateX(-8vw) translateY(-0.4vw); } .ab__left { width: 8vw; height: 0.4vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.4vw); } .ab__top { width: 8vw; height: 8vw; transform-origin: top left; transform: translateZ(0.4vw); } .ab__bottom { width: 8vw; height: 8vw; transform-origin: top left; transform: rotateY(180deg) translateX(-8vw); } .ab__front { background-color: #c4c2d6; } .ab__back { background-color: #c4c2d6; } .ab__right { background-color: #fbfbfb; } .ab__left { background-color: #fbfbfb; } .ab__top { background-color: #f2f2f2; } .ab__bottom { background-color: #c4c2d6; } .at { width: 8vw; height: 4vw; position: absolute; right: 0; top: 0; } .at__front { width: 8vw; height: 0.4vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(3.6vw); } .at__back { width: 8vw; height: 0.4vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-8vw) translateY(-0.4vw); } .at__right { width: 4vw; height: 0.4vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(8vw) translateX(-4vw) translateY(-0.4vw); } .at__left { width: 4vw; height: 0.4vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.4vw); } .at__top { width: 8vw; height: 4vw; transform-origin: top left; transform: translateZ(0.4vw); } .at__bottom { width: 8vw; height: 4vw; transform-origin: top left; transform: rotateY(180deg) translateX(-8vw); } .at__front { background-color: #c4c2d6; } .at__back { background-color: #c4c2d6; } .at__right { background-color: #fbfbfb; } .at__left { background-color: #fbfbfb; } .at__top { background-color: #f2f2f2; } .at__bottom { background-color: #c4c2d6; } .ac { width: 6vw; height: 12vw; position: absolute; right: 0; top: 4vw; } .ac__front { width: 6vw; height: 1vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(11vw); } .ac__back { width: 6vw; height: 1vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-6vw) translateY(-1vw); } .ac__right { width: 12vw; height: 1vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(6vw) translateX(-12vw) translateY(-1vw); } .ac__left { width: 12vw; height: 1vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-1vw); } .ac__top { width: 6vw; height: 12vw; transform-origin: top left; transform: translateZ(1vw); } .ac__bottom { width: 6vw; height: 12vw; transform-origin: top left; transform: rotateY(180deg) translateX(-6vw); } .ac .face { opacity: .9; } .ac__front { background-color: #4d6d98; opacity: .75; } .ac__back { background-color: #4d6d98; } .ac__right { background-image: linear-gradient(to top, #6187be, #7095c9); } .ac__left { background-color: #16273c; } .ac__top { opacity: .75; background-image: linear-gradient(to right, #7095c9 0, #7095c9 5%, #6187be 20%, #6187be 30%, #7095c9 40%, #7095c9 65%, #658dc5 70%, #658dc5 72%, #7095c9 85%); box-shadow: inset 0.5vw 0.5vw 2vw rgba(251, 251, 251, 0.5); } .ac__top::before { content: ''; position: absolute; width: 40%; height: 100%; overflow: hidden; background-image: linear-gradient(to bottom, transparent 0, transparent 10%, rgba(97, 135, 190, 0.9) 15%, rgba(97, 135, 190, 0.9) 40%, rgba(251, 251, 251, 0.2) 40%, rgba(251, 251, 251, 0.2) 50%, transparent 60%); filter: blur(0.15vw); } .ac__bottom { background-color: #4d6d98; } .ac__bottom::before { content: ''; position: absolute; width: 100%; height: 100%; box-shadow: -0.25vw 0.25vw 1vw #234062; } /***************/ /***************/ .bce { width: 17vw; height: 20.5vw; position: absolute; right: 6vw; top: 0; transform: translateZ(0.41vw); } .bce__front { width: 17vw; height: 0.5vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(21.5vw); } .bce__back { width: 17vw; height: 0.5vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-17vw) translateY(-0.5vw); } .bce__right { width: 22vw; height: 0.5vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(17vw) translateX(-22vw) translateY(-0.5vw); } .bce__left { width: 22vw; height: 0.5vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.5vw); } .bce__top { width: 17vw; height: 22vw; transform-origin: top left; transform: translateZ(0.5vw); } .bce__bottom { width: 17vw; height: 22vw; transform-origin: top left; transform: rotateY(180deg) translateX(-17vw); } .bce__front { background-image: linear-gradient(to right, #a7a4c2, #c4c2d6); } .bce__back { background-color: #c4c2d6; } .bce__right { background-color: #f2f2f2; } .bce__left { background-color: #c4c2d6; } .bce__top { background-image: linear-gradient(135deg, #a7a4c2 60%, #f2f2f2); } .bce__bottom { background-color: #c4c2d6; } .bce__bottom::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 101%; background-color: #675D6E; filter: blur(0.35vw); } .bci { width: 16vw; height: 21vw; position: absolute; right: 6vw; top: 0; transform: translateZ(0.92vw); } .bci__front { width: 16vw; height: 0.5vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(20.5vw); } .bci__back { width: 16vw; height: 0.5vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-16vw) translateY(-0.5vw); } .bci__right { width: 21vw; height: 0.5vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(16vw) translateX(-21vw) translateY(-0.5vw); } .bci__left { width: 21vw; height: 0.5vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.5vw); } .bci__top { width: 16vw; height: 21vw; transform-origin: top left; transform: translateZ(0.5vw); } .bci__bottom { width: 16vw; height: 21vw; transform-origin: top left; transform: rotateY(180deg) translateX(-16vw); } .bci__front { background-image: linear-gradient(to right, #a7a4c2, #c4c2d6); } .bci__back { background-color: #c4c2d6; } .bci__right { background-color: #f2f2f2; } .bci__left { background-color: #c4c2d6; } .bci__top { background-image: linear-gradient(135deg, #a7a4c2 60%, #f2f2f2); } .bci__top::before { content: ''; position: absolute; width: 100%; height: 16.4vw; background-color: #d7d6ea; } .bci__top::after { content: ''; position: absolute; bottom: 1.5vw; left: 1vw; width: 10vw; height: 3.5vw; border-radius: 50%; background-image: radial-gradient(#badfd9, transparent); filter: blur(0.5vw); } .bci__bottom { background-color: #c4c2d6; } .bci__bottom::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 101%; background-color: #675D6E; filter: blur(0.35vw); } .bl { width: 13vw; height: 17vw; position: absolute; left: 0; top: 0; transform: translateZ(0.41vw); } .bl__front { width: 13.1vw; height: 0.5vw; transform-origin: bottom left; transform: rotateX(-90deg) translateZ(16.5vw); } .bl__back { width: 13.1vw; height: 0.5vw; transform-origin: top left; transform: rotateX(-90deg) rotateY(180deg) translateX(-13.1vw) translateY(-0.5vw); } .bl__right { width: 17vw; height: 0.5vw; transform-origin: top left; transform: rotateY(90deg) rotateZ(-90deg) translateZ(13.1vw) translateX(-17vw) translateY(-0.5vw); } .bl__left { width: 17vw; height: 0.5vw; transform-origin: top left; transform: rotateY(-90deg) rotateZ(90deg) translateY(-0.5vw); } .bl__top { width: 13.1vw; heig.........完整代码请登录后点击上方下载按钮下载查看
网友评论0