はい、みなさんこんにちは!
今回は要素の数に応じてJSではなくCSSのみで表示スタイルを変更する方法です。
では早速ソースです。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
:
</ul>
上記のようなHTMLだった場合
li:first-child:nth-last-child(3),
li:first-child:nth-last-child(3) ~ li {
}
このようなcssを書いてあげることで合計3つの時のスタイルを定義できます。
li要素を一つ目から数えたときに3つ目になる場合
~ を使用することで、後続する2番目〜3番目の要素にも同じスタイルを適応できます。
.item:only-child {
}
/* 1個だけ */
li:first-child:nth-last-child(2),
li:first-child:nth-last-child(2) ~ li {
}
/* 2個だけ */
.item:first-child:nth-last-child(3),
.item:first-child:nth-last-child(3) ~ .item {
}
/* 3個だけ */
/*以下略*/
以上です!みなさんもお試しあれ~