JSFiddle - React, Tailwind, and code Playground
HTML
<div class="content" data-content="main"></div>
CSS
.content {
display: flex;
font-size: 0;
}
.block {
width: 33.33%;
}
.block > div {
background: #ffffff;
box-shadow: 0 4px 8px -4px rgba(0, 0, 0, 0.25);
margin: 5px;
}
.btn {
display: inline-block;
font-size: 16px;
text-align: center;
width: 33.33%;
}
.btn > div {
background: #cccccc;
border-radius: 2px;
cursor: pointer;
margin: 3px;
padding: 10px;
}
.btn > div > div {
background: rgba(255, 255, 255, 0.23);
border-radius: 50%;
box-shadow: inset 0 4px 8px -4px rgba(0, 0, 0, 0.27);
margin: 0 auto;
height: 60px;
width: 60px;
}
.btn > div > span {}
.btn > div > span + span {}
JavaScript
const LIMIT_POINT = 30;
var ito = 0;
var TEST = {
data: [
[{
id: 1,
parentId: 0,
max: 4
}, {
id: 2,
parentId: 0,
max: 2
}, {
id: 3,
parentId: 0,
max: 3
}, {
id: 4,
parentId: 1,
max: 4
}, {
id: 5,
parentId: 2,
max: 2
}, {
id: 6,
parentId: 3,
max: 3
}, {
id: 7,
parentId: 4,
max: 4
}, {
id: 8,
parentId: 5,
max: 2
}, {
id: 9,
parentId: 6,
max: 3
}, {
id: 10,
parentId: 7,
max: 10
}],
[{
id: 1,
parentId: 0,
max: 4
}, {
id: 2,
parentId: 0,
max: 2
}, {
id: 3,
parentId: 0,
max: 3
}, {
id: 4,
parentId: 1,
max: 4
}, {
id: 5,
parentId: 2,
max: 2
}, {
id: 6,
parentId: 3,
max: 3
}, {
id: 7,
parentId: 1,
max: 4
}, {
id: 8,
parentId: 2,
max: 2
}, {
id: 9,
parentId: 3,
max: 3
}],
[{
id: 1,
parentId: 0,
max: 4
}, {
id: 2,
parentId: 0,
max: 2
}, {
id: 3,
parentId: 0,
max: 3
}, {
id: 4,
parentId: 1,
max: 4
}, {
id: 5,
parentId: 2,
max: 2
}, {
id: 6,
parentId: 3,
max: 3
}, {
id: 7,
parentId: 1,
max: 4
}, {
id: 8,
parentId: 2,
max: 2
}, {
id: 9,
parentId: 3,
max: 3
}]
],
initTable: function() {
$(TEST.data).each(function(k1, v1) {
$('[data-content="main"]').append('<div class="block" data-block="' + k1 + '"><div></div></div>')
$(v1).each(function(k2, v2) {
$('[data-block="' + k1 + '"] > div').append('<div class="btn" data-btn="' +
v2.id + '"><div><div>icon</div><span data-span="real">0</span>/<span data-span="max">' + v2.max +...