Q98408 の回答(Grid Layout)


HTMLとCSSは、こんな感じ。
記述量は多いけど、保守性は格段にこちらの方が上。
クラス名は、左上の位置を末尾につけている。

<style>
.grid-wrapper {
    display: grid;
    grid-template-rows: 4em 4em 4em 4em 4em 4em 4em;
    grid-template-columns:  14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%;
    width: 70%;
    border: 1px solid black;
}
.grid-wrapper .grid-item {
    border: 2px solid black;
}
.grid-wrapper .item-11 {
    grid-row: 1;
    grid-column: 1 / 3;
}
.grid-wrapper .item-13 {
    grid-row: 1;
    grid-column: 3;
}
.grid-wrapper .item-14 {
    grid-row: 1;
    grid-column: 4;
}
.grid-wrapper .item-15 {
    grid-row: 1;
    grid-column: 5 / 7;
}
.grid-wrapper .item-17 {
    grid-row: 1 / 3;
    grid-column: 7;
}
.grid-wrapper .item-21 {
    grid-row: 2 / 4;
    grid-column: 1;
}
.grid-wrapper .item-22 {
    grid-row: 2 / 4;
    grid-column: 2;
}
.grid-wrapper .item-23 {
    grid-row: 2;
    grid-column: 3;
}
.grid-wrapper .item-24 {
    grid-row: 2;
    grid-column: 4;
}
.grid-wrapper .item-25 {
    grid-row: 2;
    grid-column: 5;
}
.grid-wrapper .item-26 {
    grid-row: 2 / 4;
    grid-column: 6;
}
.grid-wrapper .item-33 {
    grid-row: 3;
    grid-column: 3;
}
.grid-wrapper .item-34 {
    grid-row: 3;
    grid-column: 4;
}
.grid-wrapper .item-35 {
    grid-row: 3;
    grid-column: 5;
}
.grid-wrapper .item-37 {
    grid-row: 3 / 6;
    grid-column: 7;
}
.grid-wrapper .item-41 {
    grid-row: 4 / 7;
    grid-column: 1 / 3;
}
.grid-wrapper .item-43 {
    grid-row: 4;
    grid-column: 3;
}
.grid-wrapper .item-44 {
    grid-row: 4 / 6;
    grid-column: 4;
}
.grid-wrapper .item-45 {
    grid-row: 4 / 6;
    grid-column: 5;
}
.grid-wrapper .item-46 {
    grid-row: 4 / 6;
    grid-column: 6;
}
.grid-wrapper .item-53 {
    grid-row: 5 / 7;
    grid-column: 3;
}
.grid-wrapper .item-64 {
    grid-row: 6;
    grid-column: 4 / 6;
}
.grid-wrapper .item-66 {
    grid-row: 6 / 8;
    grid-column: 6 / 8;
}
.grid-wrapper .item-71 {
    grid-row: 7;
    grid-column: 1 / 3;
}
.grid-wrapper .item-73 {
    grid-row: 7;
    grid-column: 3 / 6;
}
</style>
<div class="grid-wrapper">
    <div class="grid-item item-11"></div>
    <div class="grid-item item-13"></div>
    <div class="grid-item item-14"></div>
    <div class="grid-item item-15"></div>
    <div class="grid-item item-17"></div>
    <div class="grid-item item-21"></div>
    <div class="grid-item item-22"></div>
    <div class="grid-item item-23"></div>
    <div class="grid-item item-24"></div>
    <div class="grid-item item-25"></div>
    <div class="grid-item item-26"></div>
    <div class="grid-item item-33"></div>
    <div class="grid-item item-34"></div>
    <div class="grid-item item-35"></div>
    <div class="grid-item item-37"></div>
    <div class="grid-item item-41"></div>
    <div class="grid-item item-43"></div>
    <div class="grid-item item-44"></div>
    <div class="grid-item item-45"></div>
    <div class="grid-item item-46"></div>
    <div class="grid-item item-53"></div>
    <div class="grid-item item-64"></div>
    <div class="grid-item item-66"></div>
    <div class="grid-item item-71"></div>
    <div class="grid-item item-73"></div>
</div>