# flex布局案例-骰子

先上代码,效果在后面

# 代码

html结构

<div class="box">
  <div class="first-face">
    <span class="pip"></span>
  </div>
  <div class="second-face">
    <span class="pip"></span><span class="pip"></span>
  </div>
  <div class="third-face">
    <span class="pip"></span><span class="pip"></span><span class="pip"></span>
  </div>
  <div class="fourth-face">
    <div class="column">
      <span class="pip"></span><span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span><span class="pip"></span>
    </div>
  </div>
  <div class="fifth-face">
    <div class="column">
      <span class="pip"></span><span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span><span class="pip"></span>
    </div>
  </div>
  <div class="sixth-face">
    <div class="column">
      <span class="pip"></span><span class="pip"></span><span class="pip"></span>
    </div>
    <div class="column">
      <span class="pip"></span><span class="pip"></span><span class="pip"></span>
    </div>
  </div>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

css样式

  /* 一 */
  .first-face { /* 形成上下左右居中 */
    display: flex;
    justify-content: center;/* 项目在主轴上居中 */
    align-items: center;/* 项目在交叉轴上居中 */
  }
  /* 二 */
  .second-face {
    display: flex;
    justify-content: space-between;/* 两侧对齐 */
  }
  .second-face .pip:nth-of-type(2) {
    align-self: flex-end;/* 居下 */
  }
  /* 三 */
  .third-face {
    display: flex;
    justify-content: space-between;/* 两侧对齐 */
  }
  .third-face .pip:nth-of-type(2) {
    align-self: center;/* 居中 */
  }
  .third-face .pip:nth-of-type(3) {
    align-self: flex-end;/* 居下 */
  }
  /* 四 、六*/
  .fourth-face,.sixth-face {
    display: flex;
    justify-content: space-between;/* 两侧对齐 */
  }
  .fourth-face .column,
  .sixth-face .column {
    display: flex;
    flex-direction: column;/* 纵向排列 */
    justify-content: space-between;/* 两侧对齐 */
  }
  /* 五 */
  .fifth-face {
    display: flex;
    justify-content: space-between;/* 两侧对齐 */
  }
  .fifth-face .column {
    display: flex;
    flex-direction: column;
    justify-content: space-between;/* 两侧对齐 */
  }
  .fifth-face .column:nth-of-type(2) {
    justify-content: center;/* 居中对齐 */
  }
/* 基础样式 */
.box {
  display: flex;
  align-items: center;/* 项目在交叉轴上居中 */
  justify-content: center;/* 项目在主轴上居中 */
  vertical-align: center;
  /* 允许项目换行 */
  flex-wrap: wrap;  /* 项目是多行时以交叉轴中心对齐 */
  align-content: center;
  font-family: 'Open Sans', sans-serif;  background: linear-gradient(top, #222, #333);
}
/* 类名包含face的元素 */
[class$="face"] {margin: 5px;padding: 4px;background-color: #e7e7e7;
width: 104px;height: 104px;object-fit: contain;
box-shadow:
    inset 0 5px white,
    inset 0 -5px #bbb,
    inset 5px 0 #d7d7d7,
    inset -5px 0 #d7d7d7;  border-radius: 10%;
}
.pip {display: block;width: 24px;height: 24px;border-radius: 50%;margin: 4px;  background-color: #333;
  box-shadow: inset 0 3px #111, inset 0 -3px #555;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# 效果

可用F12开发者工具查看代码

参考:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

更新于: 12/26/2019, 4:48:28 PM