I am trying to create a 4x4 grid of pads. Each pad should have a caption that is positioned in the middle of the pad.
Given the following code:
.pads {
width: 320px;
height: 320px;
}
.pad_container {
float: left;
width: 80px;
height: 80px;
background-color: black;
}
.pad {
width: 100%;
height: 100%;
background-color: powderblue;
transition: background-color 0.3s, width 0.1s, height 0.1s, margin 0.1s;
cursor: pointer;
}
.pad:hover {
background-color: yellow;
}
.pad:active {
background-color: orange;
margin-top: 10%;
margin-left: 10%;
height: 80%;
width: 80%;
}
<!DOCTYPE HTML>
<html>
<body>
<div class="pads">
<div class="pad_container">
<div class="pad">
<div class="pad_caption">Pad 1</div>
</div>
</div>
<div class="pad_container">
<div class="pad">Pad 2</div>
</div>
<div class="pad_container">
<div class="pad">Pad 3</div>
</div>
<div class="pad_container">
<div class="pad">Pad 4</div>
</div>
<div class="pad_container">
<div class="pad">Pad 5</div>
</div>
<div class="pad_container">
<div class="pad">Pad 6</div>
</div>
<div class="pad_container">
<div class="pad">Pad 7</div>
</div><div class="pad_container">
<div class="pad">Pad 8</div>
</div>
<div class="pad_container">
<div class="pad">Pad 9</div>
</div>
<div class="pad_container">
<div class="pad">Pad 10</div>
</div>
<div class="pad_container">
<div class="pad">Pad 11</div>
</div>
<div class="pad_container">
<div class="pad">Pad 12</div>
</div><div class="pad_container">
<div class="pad">Pad 13</div>
</div>
<div class="pad_container">
<div class="pad">Pad 14</div>
</div>
<div class="pad_container">
<div class="pad">Pad 15</div>
</div>
<div class="pad_container">
<div class="pad">Pad 16</div>
</div>
</div>
<script>
</script>
</body>
</html>
how can I put each pad caption in the middle of each pad?
In a simpler case I could do it with flexbox like this:
.test_pad {
display: flex;
align-items: center;
justify-content: center;
width: 80px;
height: 80px;
background-color: powderblue;
}
<div class="test_pad">
<div class="test_pad_text">Test pad</div>
</div>
but in my scenario it will not center and also mess with other CSS properties lie margins or width/height dimensions etc.
I am also open to solution other than flexbox.