Из моих ограниченных знаний я могу дать вам css, и это все, извините.
<style type="text/css">
.content,
.content1,
.content2,
.content3 {
color: #fff;
font: 100 24px/100px sans-serif;
height: 150px;
text-align: center;
}
.content div,
.content1 div,
.content2 div,
.content3 div {
height: 50%;
width: 300px;
}
.red {
background: orangered;
}
.green {
background: yellowgreen;
}
.blue {
background: steelblue;
}
.yellow {
background: yellow;
}
/* Flexbox Styles */
.content {
display: flex;
flex-wrap: wrap;
}
</style>
<div class="content">
<div class="red">1</div>
<div class="green">2</div>
<div class="blue">3</div>
<div class="yellow">4</div>
</div>
Это гибкая упаковка css; ему нужно будет go внутри контейнера div, с заданной высотой и шириной, заставить его разделиться на два ряда.
Я знаю, что это не все, но вы могли бы разбираться с этим с помощью JS et c и после того, как вы определите, какой ящик в JS, и дадите им идентификаторы, вы можете приступить к заполнению полей или что-то еще.
Надеюсь, вы получите свои плоды, удачи!