3カラムで複数行のコンテンツに、カラムごとに背景色のCSSを設定します。3カラムの場合、1カラム目は:nth-child(3n + 1)、2カラム目は:nth-child(3n + 2)、3カラム目は:nth-child(3n)のようにnth-childの関数表記が適用できます。
以下のhtmlで確認します。デモページではクラス名boxのliタグは12個並べています。
<ul class="container">
<li class="box">
<p>ダミーテキストダミーテキストダミーテキスト</p>
</li>
<li class="box">
<p>ダミーテキストダミーテキストダミーテキスト</p>
</li>
<li class="box">
<p>ダミーテキストダミーテキストダミーテキスト</p>
</li>
</ul>
CSSはまずクラス名boxのliタグ全てに1カラム目の背景色を設定します。そして、2カラム目と3カラム目は:nth-child(3n + 2)と:nth-child(3n)を利用して上書きします。そのため、今回:nth-child(3n + 1)は使用しません。
関数内のnには正の整数が入り、0から始まります。結果、:nth-child(3n + 1)は「1、4、7、10、13・・・」、:nth-child(3n + 2)は「2、5、8、11、14・・・」の順番のliタグにCSSが適用できます。
.container {
display: flex;
flex-wrap: wrap;
justify-content: center;
margin: -10px -5px 0;
}
.box {
width: calc(33.33% - 10px);
margin: 10px 5px 0;
padding: 1em;
background: #e0d4c3;
counter-increment: index;
}
.box:before {
display: block;
margin: 0 0 1em;
font-family: 'Patua One', cursive;
font-size: 2rem;
font-weight: 400;
color: #fff;
content: counter(index, decimal-leading-zero)'.';
}
.box:nth-child(3n + 2) {
background: #dec49f;
}
.box:nth-child(3n) {
background: #cca163;
}
なお、liタグの疑似要素のcontentプロパティには、CSSのcounter関数で連番を指定しています。





