JSFiddle - React, Tailwind, and code Playground
HTML
<span>%版</span>
<div class="grid css-gap">
<div>1fr</div>
<div>2fr</div>
<div>4fr</div>
<div>8fr</div>
<div>16fr</div>
</div>
<span>ダミー要素版</span>
<div class="grid dummy-gap">
<div>1fr</div>
<div class="gap"></div>
<div>2fr</div>
<div class="gap"></div>
<div>4fr</div>
<div class="gap"></div>
<div>8fr</div>
<div class="gap"></div>
<div>16fr</div>
</div>
CSS
.grid.css-gap {
display: grid;
gap: calc(1 / 33 * 100%);
grid-template-columns: 1fr 2fr 4fr 8fr 16fr;
}
.grid.dummy-gap {
display: grid;
gap: 0;
grid-template-columns: 1fr 1fr 2fr 1fr 4fr 1fr 8fr 1fr 16fr;
}
.grid > div:not(.gap) {
background: #8ff;
border: solid 1px black;
}