疑似クラスnth-child() 「n番目」の数え方のルール

疑似クラスnth-child()は「要素:nth-child()」の他、「セレクタ:nth-child()」という使い方ができる。

しかし「n番目」を数えるときは、「セレクタ単位」ではなく「セレクタが付いている要素単位」である。

目次

.blue:nth-child()が効かない

HTML


  • 赤 (font-size : 16px)
  • 赤 (font-size : 20px)
  • 赤 (font-size : 24px)
  • 青 (font-size : 28px)
  • 青 (font-size : 32px)
  • 青 (font-size : 36px)
CSS


.red:nth-child(1) {
    font-size: 16px;
}

.red:nth-child(2) {
    font-size: 20px;
}

.red:nth-child(3) {
    font-size: 24px;
}

/* 以下は、いずれも効かない (
  • の文字サイズが変わらない)*/ .blue:nth-child(1) { font-size: 28px; } .blue:nth-child(2) { font-size: 32px; } .blue:nth-child(3) { font-size: 36px; }

    .blue:nth-child()が効く

    HTML

    
    
    • 赤 (font-size : 16px)
    • 赤 (font-size : 20px)
    • 赤 (font-size : 24px)
    • 青 (font-size : 28px)
    • 青 (font-size : 32px)
    • 青 (font-size : 36px)
    CSS

    
    .red:nth-child(1) {
        font-size: 16px;
    }
    
    .red:nth-child(2) {
        font-size: 20px;
    }
    
    .red:nth-child(3) {
        font-size: 24px;
    }
    
    
    /* .blueは.redと同じ
      直下の
    • 要素なので、.blueの連番は4から */ .blue:nth-child(4) { font-size: 28px; } .blue:nth-child(5) { font-size: 32px; } .blue:nth-child(6) { font-size: 36px; }

    おまけ : 親が異なるとき

    以下の場合は、「li.red」と「li.blue」は異なるul要素の子なので、それぞれ「1~3番目」でも問題ない。

    HTML

    
    
    • 赤 (font-size : 16px)
    • 赤 (font-size : 20px)
    • 赤 (font-size : 24px)
    • 青 (font-size : 28px)
    • 青 (font-size : 32px)
    • 青 (font-size : 36px)
    CSS

    
    .red:nth-child(1) {
        font-size: 16px;
    }
    
    .red:nth-child(2) {
        font-size: 20px;
    }
    
    .red:nth-child(3) {
        font-size: 24px;
    }
    
    /* li.redとli.blueは異なるul要素の子なので「1~3番目」でOK*/
    .blue:nth-child(1) {
        font-size: 28px;
    }
    
    .blue:nth-child(2) {
        font-size: 32px;
    }
    
    .blue:nth-child(3) {
        font-size: 36px;
    }
    

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です