.element {
/* width: calc(33.3% - 20px); */
width: calc((100% - 20px * 2) / 3);
height: 50px;
background: black;
}
.container {
width: 500px;
display: grid;
grid-gap: 20px;
grid-template-columns: repeat(3, 1fr);
border: 1px solid green;
}
.element {
height: 50px;
background: black;
}
<div class="block">
<img src="..." onload="this.classList.add('loaded')">
<span>Текст поверх картинки</span>
</div>
.block {
position: relative;
}
.block span {
position: absolute;
display: none;
}
.block img.loaded + span {
display: block;
}
<link href="styles.css?random_string">
<link href="styles.css?<?=time()?>">
<link href="styles.css?<?=md5_file(путь_к_файлу/styles.css)?>">
<link href="styles.css?<?=filemtime(путь_к_файлу/styles.css)?>">
<div class="grid">
<img class="grid-item" src="">
<img class="grid-item" src="">
<img class="grid-item" src="">
<img class="grid-item" src="">
<img class="grid-item" src="">
</div>
.grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: 2px;
}
.grid-item:nth-child(1),
.grid-item:nth-child(2) { grid-column: span 3; }
.grid-item:nth-child(3),
.grid-item:nth-child(4),
.grid-item:nth-child(5) { grid-column: span 2; }