疑似クラス nth-of-type をアレンジしてみた

yasuko
ツアーの申し込みで頭がいっぱいです

疑似クラスが使いこなせると便利です。

ベースとなるhtml + css

横山裕
丸山隆平
大倉忠義
渋谷すばる
錦戸亮
安田章大
村上信五
<div class="memberwrap">
  <div>横山裕</div>
  <div>丸山隆平</div>
  <div>大倉忠義</div>
  <div>渋谷すばる</div>
  <div>錦戸亮</div>
  <div>安田章大</div>
  <div>村上信五</div>
</div>
.memberwrap{
  display:flex;
}
.memberwrap div::after{
  content:"・";
}
.memberwrap div:last-of-type::after{
  content:none;
}

<div>の後ろに疑似クラス ::after で『・』をつけています。

最後の<div>の後ろになにもつけない :last-of-type::after という指定をしています。

これを基本に疑似クラスのアレンジをしてみます。

n番目だけ色を変える

横山裕
丸山隆平
大倉忠義
渋谷すばる
錦戸亮
安田章大
村上信五
.memberwrap div:nth-of-type(5){
  color:yellow;
}

nth-of-type(5) で5番目の要素の色を変えています。

nの倍数だけ色を変える

横山裕
丸山隆平
大倉忠義
渋谷すばる
錦戸亮
安田章大
村上信五
.memberwrap div:nth-of-type(3n){
  background:beige;
}

nth-of-type(3n) で3の倍数の要素の背景色を変えています。

nth-of-type(odd) で奇数

nth-of-type(even) で偶数の指定をすることもできます。

行を挿入してもcssの指定をやりなおさなくてもいいので、1行おきに背景に色をつけてある表などを作るときに便利です。

n個以降の要素だけ色を変える

横山裕
丸山隆平
大倉忠義
渋谷すばる
錦戸亮
安田章大
村上信五
.memberwrap div:nth-of-type(n + 4){
  background:pink;
}

nth-of-type(n + 4) で4個目以降の要素の背景色を変えています。

実務ではPC・タブレット・スマホで表示個数を変える、といった時に使えます。

指定の要素を非表示にする

横山裕
丸山隆平
大倉忠義
渋谷すばる
錦戸亮
安田章大
村上信五
@media screen and (max-width: 1200px) {
.memberwrap div:nth-of-type(4){
  display:none;
}
}

@media screen and (max-width: 1000px) {
.memberwrap div:nth-of-type(5){
  display:none;
}
}

nth-of-type(n) で要素を指定して画面幅によって非表示にしています。

画面幅を1200でメンバーが一人減り、

画面幅1000でさらにメンバーが一人減るように指定してあります(涙)。