css布局实现一个三维花朵效果代码

代码语言:html

所属分类:布局界面

代码描述:css布局实现一个三维花朵效果代码

代码标签: 一个 三维 花朵 效果

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


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

<head>

  <meta charset="UTF-8">
  

  
  
  
<style>
:root {
  --base-size: 250px;
  --base-height: 173px;
}

* {
  padding: 0;
  margin: 0 auto;
  box-sizing: border-box;
}

body {
  background-color: #7a7b89;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  perspective: 600px;
  overflow: hidden;
}

main {
  transform-style: preserve-3d;
  transform: translateX(-400px) translateZ(-600px);
}

main > .flower {
  transform-style: preserve-3d;
  position: relative;
  width: 500px;
  background-color: olive;
  transform-origin: 90% center;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
  --d: 138px;
}
main > .flower:nth-child(1) {
  transform-origin: 90% center;
  transform: rotateY(0.125turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(2) {
  transform-origin: 90% center;
  transform: rotateY(0.25turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(3) {
  transform-origin: 90% center;
  transform: rotateY(0.375turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(4) {
  transform-origin: 90% center;
  transform: rotateY(0.5turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(5) {
  transform-origin: 90% center;
  transform: rotateY(0.625turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(6) {
  transform-origin: 90% center;
  transform: rotateY(0.75turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(7) {
  transform-origin: 90% center;
  transform: rotateY(0.875turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(8) {
  transform-origin: 90% center;
  transform: rotateY(1turn) rotateX(180deg) translateX(-100px) rotateZ(30deg);
}
main > .flower:nth-child(9) {
  transform: rotateY(0.3333333333turn) translateZ(-50px) rotateX(180deg) translateX(150px) translateY(100px) rotateZ(15deg);
}
main > .flower:nth-child(10) {
  transform: rotateY(0.6666666667turn) translateZ(-50px) rotateX(180deg) translateX(150px) translateY(100px) rotateZ(15deg);
}
main > .flower:nth-child(11) {
  transform: rotateY(1turn) translateZ(-50px) rotateX(180deg) translateX(150px) translateY(100px) rotateZ(15deg);
}
main > .flower:nth-child(12) {
  transform: rotateY(1.3333333333turn) translateZ(-50px) rotateX(180deg) translateX(150px) translateY(100px) rotateZ(15deg);
}
main > .flower:nth-child(13) {
  transform: rotateY(1.6666666667turn) translateZ(-50px) rotateX(180deg) translateX(150px) translateY(100px) rotateZ(15deg);
}

.triangle {
  transform-origin: top;
  position: absolute;
  width: var(--base-size);
  height: var(--base-height);
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background: linear-gradient(0deg, #c32222 0%, #7a0000 100%);
  --d: 150px;
  --d: 150px;
  --d: 150px;
  --d: 150px;
  --d: 150px;
}
.triangle:nth-child(1) {
  transform: rotateY(0.2turn) translateZ(var(--d)) rotateX(-127deg);
}
.triangle:nth-child(6) {
  transform: rotateY(0.2turn) translateZ(var(--d)) rotateX(11deg);
}
.triangle:nth-child(11) {
  transform: translateX(20px) rotateY(0.3turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 8);
  height: var(--base-height);
}
.triangle:nth-child(16) {
  transform: translateX(20px) rotateY(0.3turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 8);
  height: calc(var(--base-height)/ 10 * 8);
}
.triangle:nth-child(21) {
  transform: translateX(30px) rotateY(0.6turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 6);
  height: var(--base-height);
}
.triangle:nth-child(26) {
  transform: translateX(30px) rotateY(0.6turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 6);
  height: calc(var(--base-height) / 10 * 6);
}
.triangle:nth-child(31) {
  transform: translateX(50px) rotateY(0.8turn) translateZ(calc(var(--d) / 5 * 2)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 4);
  height: var(--base-height);
}
.triangle:nth-child(36) {
  transform: translateX(50px) rotateY(0.8turn) translateZ(calc(var(--d) / 5 * 2)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 4);
  height: calc(var(--base-height) / 10 * 4);
}
.triangle:nth-child(41) {
  transform: translateX(70px) rotateY(1turn) translateZ(calc(var(--d) / 5)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 2);
  height: var(--base-height);
}
.triangle:nth-child(46) {
  transform: translateX(70px) rotateY(1turn) translateZ(calc(var(--d) / 5)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 2);
  height: calc(var(--base-height) / 10 * 2);
}
.triangle:nth-child(2) {
  transform: rotateY(0.4turn) translateZ(var(--d)) rotateX(-127deg);
}
.triangle:nth-child(7) {
  transform: rotateY(0.4turn) translateZ(var(--d)) rotateX(11deg);
}
.triangle:nth-child(12) {
  transform: translateX(20px) rotateY(0.5turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 8);
  height: var(--base-height);
}
.triangle:nth-child(17) {
  transform: translateX(20px) rotateY(0.5turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 8);
  height: calc(var(--base-height)/ 10 * 8);
}
.triangle:nth-child(22) {
  transform: translateX(30px) rotateY(0.8turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 6);
  height: var(--base-height);
}
.triangle:nth-child(27) {
  transform: translateX(30px) rotateY(0.8turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 6);
  height: calc(var(--base-height) / 10 * 6);
}
.triangle:nth-child(32) {
  transform: translateX(50px) rotateY(1turn) translateZ(calc(var(--d) / 5 * 2)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 4);
  height: var(--base-height);
}
.triangle:nth-child(37) {
  transform: translateX(50px) rotateY(1turn) translateZ(calc(var(--d) / 5 * 2)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 4);
  height: calc(var(--base-height) / 10 * 4);
}
.triangle:nth-child(42) {
  transform: translateX(70px) rotateY(1.2turn) translateZ(calc(var(--d) / 5)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 2);
  height: var(--base-height);
}
.triangle:nth-child(47) {
  transform: translateX(70px) rotateY(1.2turn) translateZ(calc(var(--d) / 5)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 2);
  height: calc(var(--base-height) / 10 * 2);
}
.triangle:nth-child(3) {
  transform: rotateY(0.6turn) translateZ(var(--d)) rotateX(-127deg);
}
.triangle:nth-child(8) {
  transform: rotateY(0.6turn) translateZ(var(--d)) rotateX(11deg);
}
.triangle:nth-child(13) {
  transform: translateX(20px) rotateY(0.7turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 8);
  height: var(--base-height);
}
.triangle:nth-child(18) {
  transform: translateX(20px) rotateY(0.7turn) translateZ(calc(var(--d) / 5 * 4)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 8);
  height: calc(var(--base-height)/ 10 * 8);
}
.triangle:nth-child(23) {
  transform: translateX(30px) rotateY(1turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(11deg);
  width: calc(var(--base-size) / 10 * 6);
  height: var(--base-height);
}
.triangle:nth-child(28) {
  transform: translateX(30px) rotateY(1turn) translateZ(calc(var(--d) / 5 * 3)) rotateX(-127deg);
  width: calc(var(--base-size) / 10 * 6);
  height: calc(var(--base-height) / 10 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0