flex布局画骰子的六个面

108 阅读1分钟

总体html和css样式

<div class="box" ref="boxRef">
    <div class="saizi one">
      <div class="dot dot-red"></div>
    </div>
    <div class="saizi two">
      <div class="dot"></div>
      <div class="dot"></div>
    </div>
    <div class="saizi three">
      <div class="dot"></div>
      <div class="dot"></div>
      <div class="dot"></div>
    </div>
    <div class="saizi four">
      <div class="dot dot-red"></div>
      <div class="dot dot-red"></div>
      <div class="dot dot-red"></div>
      <div class="dot dot-red"></div>
    </div>
    <div class="saizi five">
      <div class="row">
        <div class="dot"></div>
        <div class="dot"></div>
      </div>
      <div class="row">
        <div class="dot"></div>
      </div>
      <div class="row">
        <div class="dot"></div>
        <div class="dot"></div>
      </div>
    </div>
    <div class="saizi six">
      <div class="dot"></div>
      <div class="dot"></div>
      <div class="dot"></div>
      <div class="dot"></div>
      <div class="dot"></div>
      <div class="dot"></div>
    </div>
  </div>
.box {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    .saizi {
      width: 400px;
      height: 400px;
      padding: 50px;
      box-sizing: border-box;
      border-radius: 25px;
      display: flex;
      box-shadow: inset 0 0 20px rgba(0,0,0,.5);
      margin-top: 10px;
      margin-left: 15px;
      .dot {
        width: 90px;
        height: 90px;
        background: #000;
        border-radius: 50%;
        color: #fff;
      }
      .dot-red {
        background: red;
      }
 }

一个点

.one {
  justify-content: center;
  align-items: center;
}

两个点

.two {
  justify-content: space-between;
  .dot:nth-child(2) {
    align-self: flex-end;
  }
}

三个点

.three {
  .dot:nth-child(2) {
    align-self: center;
  }
  .dot:nth-child(3) {
    align-self: flex-end;
  }
}

四个点

.four {
  flex-wrap: wrap;
  gap: 116px;
}

五个点

.five {
  justify-content: space-between;
  flex-direction: column;
  .row {
    display: flex;
    justify-content: space-between;
  }
  .row:nth-child(2) {
    justify-content: center;
  }
}

六个点

.six {
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 13px 116px;
}

实现效果图

image.png