VDone Demo VDone Demo
Home
  • Articles

    • JavaScript
  • Study Notes

    • JavaScript Tutorial
    • Professional JavaScript
    • ES6 Tutorial
    • Vue
    • React
    • TypeScript: Build Axios from Scratch
    • Git
    • TypeScript
    • JS Design Patterns
  • HTML
  • CSS
  • Technical Docs
  • GitHub Tips
  • Node.js
  • Blog Setup
  • Learning
  • Interviews
  • Miscellaneous
  • Practical Tips
  • Friends
About
Bookmarks
  • Categories
  • Tags
  • Archives
GitHub (opens new window)

Nikolay Tuzov

Backend Developer
Home
  • Articles

    • JavaScript
  • Study Notes

    • JavaScript Tutorial
    • Professional JavaScript
    • ES6 Tutorial
    • Vue
    • React
    • TypeScript: Build Axios from Scratch
    • Git
    • TypeScript
    • JS Design Patterns
  • HTML
  • CSS
  • Technical Docs
  • GitHub Tips
  • Node.js
  • Blog Setup
  • Learning
  • Interviews
  • Miscellaneous
  • Practical Tips
  • Friends
About
Bookmarks
  • Categories
  • Tags
  • Archives
GitHub (opens new window)
  • HTML

  • CSS

    • CSS Tutorials and Tips Collection
    • Flex Layout Syntax
    • Flex Layout Example - Basics
    • Flex Layout Example - Dice
    • Flex Layout Example - Holy Grail Layout
    • Flex Layout Example - Grid Layout
    • Flex Layout Example - Input Layout
    • CSS3 Transition
    • CSS3 Animation
    • Layout Tip - Auto-Expand Element Height Before Images Load
    • Text Overflow Ellipsis for Single and Multiple Lines
    • Understanding the Box Model Through the box-sizing Property
    • Horizontal and Vertical Centering Methods - Examples
    • How to Automatically Respond to CSS Dark Mode Based on System Theme
    • CSS Trick - Custom Hover Tooltips with :hover and attr()
    • CSS Functions Summary
    • Adding a Scrollbar to a Table's tbody with CSS
    • Animations in Grid Layout
  • 页面
  • CSS
xugaoyi
2019-12-25

Flex Layout Example - Dice

# Flex Layout Example - Dice

You can use F12 developer tools to inspect elements and styles, or open CodePen to edit the code online.

<html>
  <div class="box2">
    <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>
</html>
<style>
  /* One */
  .first-face { /* Center horizontally and vertically */
    display: flex;
    /* Center items on the main axis */
    justify-content: center;
    /* Center items on the cross axis */
    align-items: center;
  }
  /* Two */
  .second-face {
    display: flex;
    /* Justify to both sides */
    justify-content: space-between;
  }
  .second-face .pip:nth-of-type(2) {
    /* Align to bottom */
    align-self: flex-end;
  }/* Three */
  .third-face {
    display: flex;
    /* Justify to both sides */
    justify-content: space-between;
  }
  .third-face .pip:nth-of-type(2) {
    /* Center */
    align-self: center;
  }
  .third-face .pip:nth-of-type(3) {
    /* Align to bottom */
    align-self: flex-end;
  }
  /* Four, Six */
  .fourth-face,
  .sixth-face {
    display: flex;
    /* Justify to both sides */
    justify-content: space-between;
  }
  .fourth-face .column,
  .sixth-face .column {
    display: flex;
    /* Vertical arrangement */
    flex-direction: column;
    /* Justify to both sides */
    justify-content: space-between;
  }
  /* Five */
  .fifth-face {
    display: flex;
    /* Justify to both sides */
    justify-content: space-between;
  }
  .fifth-face .column {
    display: flex;
    /* Vertical arrangement */
    flex-direction: column;
    /* Justify to both sides */
    justify-content: space-between;
  }
  .fifth-face .column:nth-of-type(2) {
    /* Center alignment */
    justify-content: center;
  }
/* Base styles */
.box2 {
  display: flex;
  /* Center items on the cross axis */
  align-items: center;
  /* Center items on the main axis */
  justify-content: center;
  vertical-align: center;
  /* Allow items to wrap */
  flex-wrap: wrap;  /* Center-align on cross axis when items span multiple rows */
  align-content: center;
  font-family: 'Open Sans', sans-serif;
}
/* Elements with class name containing "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;
}
</style>
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

Reference: http://www.ruanyifeng.com/blog/2015/07/flex-examples.html (opens new window)

Edit (opens new window)
Last Updated: 2026/03/21, 12:14:36
Flex Layout Example - Basics
Flex Layout Example - Holy Grail Layout

← Flex Layout Example - Basics Flex Layout Example - Holy Grail Layout→

Recent Updates
01
How I Discovered Disposable Email — A True Story
06-12
02
Animations in Grid Layout
09-15
03
Renaming a Git Branch
08-11
More Articles >
Theme by VDone | Copyright © 2026-2026 Nikolay Tuzov | MIT License | Telegram
  • Auto
  • Light Mode
  • Dark Mode
  • Reading Mode