よく使われるn番目の子セレクターをまとめる

よく使われるn番目の子セレクターをまとめる

序文

フロントエンドプログラミングでは、奇数、偶数などの数値を受け入れることができる nth-child セレクターをよく使用します。今日、Mastering CSS という本を読んでいたときに、4n+1、-2n+1 などの式も受け入れることができることを思い出しました。では、具体的な用途は何でしょうか?適用可能なシナリオは何ですか?まだよくわからないかもしれませんので、以下の例を詳しく見てみましょう。HTML 構造は次のとおりです。

<本文>
    <a>1</a>
    <a>2</a>
    <a>3</a>
    <a>4</a>
    <a>5</a>
    <a>6</a>
</本文>

n番目の子(偶数)とn番目の子(奇数)

これは非常によく使用される変数で、それぞれ偶数と奇数を表します。

<スタイル タイプ="text/css">
    a:nth-child(even){/*偶数フォントは赤*/
        色: 赤;
    }
    a:nth-child(odd){/*奇数のフォントサイズは30pxです*/
        フォントサイズ: 30px;
    }
</スタイル>

ブラウザをチェックしたところ、次のように予想どおりであることがわかりました。

n番目の子(1)

単一の要素を選択すると、その要素は指定された値に従って照合されます。1 から数えて、次のように最も一般的な値になります。

<スタイル タイプ="text/css">
    a:nth-child(3){/*処理対象として3番目の要素のデータを選択する*/
        色: 赤;
        フォントサイズ: 30px;
    }
</スタイル>

結果は予想通りでした:

n番目の子(2n+1)

この表現形式はあまり使用されません。どのように扱えばよいでしょうか?実際、これも非常に簡単です。n を 0 から数え、式全体の値を計算し、ドキュメントを一致させて、一致するものがない場合は停止します。たとえば、nth-child(2n+1) は現在のドキュメントとどのように一致するでしょうか。n=0、2n+1=1 のとき、存在する場合は一致し続けます。 n=1、2n+1=3 の場合も存在します。n=2、2n+1=5 の場合もまだ存在します。n=3、2n+1=7 の場合、一致させることができなくなりました。したがって、機能する要素は行 1、3、5 になります。ブラウザーの結果が予想どおりかどうか確認してみましょう。

案の定、1、3、5しかありません

-n、たとえば -n+2 の場合は、実際には同様です。n=0、-n+2=2 の場合、一致が継続します。n=1 の場合、-n+2=1 がまだ存在します。n=0、-n+2=0 が存在しない場合は、一致が終了します。したがって、機能する要素は行 1 と 2 になります。結果を見てみましょう。

これを使用して、最初のいくつかの要素を一致させることができます。もちろん、一致できる要素は、設計する式によって異なります。

上記とよく混同される拡張機能: nth-of-type

:nth-of-type は上記と似た値を持っていますが、違いは何でしょうか?ページ要素が複雑になると、それが表示されます。次のように HTML 構造を変更します。

<本文>
    <a>a1</a>
    <p>p1</p>
    <a>a2</a>
    <p>p2</p>
    <a>a3</a>
    <p>p3</p>
    <a>a4</a>
    <p>p4</p>
</本文>

ここには追加の p タグがあることがわかります。次の CSS スタイルを追加するとどうなるでしょうか?

<スタイル タイプ="text/css">
    a:n番目の子(2){
        色: 赤;
        フォントサイズ: 30px;
    }
</スタイル>

a2 が赤くなって大きくなると言う人も多いと思いますが、本当にそうなのでしょうか?結果を見てみましょう:

結果は変わりません。なぜでしょうか? a:nth-child(2) は a タグと親要素の 2 番目の子要素の両方を参照するためです。この構造では、親要素の 2 番目の子要素は p1 に対応するタグである必要があります。では、a2 を赤く大きくするにはどうすればよいでしょうか?ここで、混乱を招く a:nth-of-type(2) を導入する必要があります。これは、すべての a 要素のうち、a タグと親要素の 2 番目の子要素の両方を参照するためです。これはまさに私が望んでいることではないでしょうか。結果が期待通りのものかどうか見てみましょう。

<スタイル タイプ="text/css">
    a:n番目の型(2){
        色: 赤;
        フォントサイズ: 30px;
    }
</スタイル>

これが私たちの考えです。

まとめ

まず、nth-child のさまざまな値をまとめます。単一の値は 1 からカウントが開始されることに注意してください。数値式の場合は、n は 0 からカウントが開始されます。

紛らわしいnth-of-typeを導入しました。nth-of-typeは現在指定された要素の型内の順序を参照しますが、nth-childはすべての要素間の順序を参照します。

よく使われるnth-childセレクターについてまとめたこの記事はこれで終わりです。nth-childセレクターについてさらに詳しく知りたい方は、123WORDPRESS.COMの過去記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

<<:  CentOS7にsshをインストールして設定する

>>:  MySQLでNULL値を判定する際の落とし穴事例

推薦する

ウェブページのカラーマッチングスキルについての簡単な説明(フロントエンド開発者必読)

一般的に、Web ページの背景色は、より柔らかく、よりシンプルで、より明るく、暗いテキストとマッチし...

CentOS/RHEL システムで VLAN タグ付きイーサネット カードを使用する方法

シナリオによっては、Linux サーバー (CentOS/RHEL) の同じイーサネット カード (...

初めてDockerイメージを構築、実行、公開、取得するための詳細な手順

1. はじめに以前は、Python アプリケーションの作成を開始したい場合、最初のステップはマシンに...

Vueは、サイドナビゲーションバーをタブページに関連付けるサンプルコードを実装します。

目次テクノロジースタック効果分析するテクノロジースタックサイドバー用Antdtabは要素を使用します...

Vue で $props、$attrs、$listeners を使用する方法の詳細な説明

目次背景1. 文書の説明2. 特定の用途結論背景ここで、状況について説明しましょう。親コンポーネント...

スキン効果を実現するJavaScript(背景の変更)

この記事では、スキン変更効果を実現するためのJavaScriptの具体的なコードを参考までに紹介しま...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...

Vue3の状態管理の使用方法の詳細な説明

目次背景提供/注入共有状態の抽出データを提供するデータの挿入まとめ反応的な共有状態の抽出共有状態の使...

CSS3は、欠けた角の長方形、折り畳まれた角の長方形、欠けた角の境界線を実装しています。

序文数日前、偶然、コーナーの四角形が欠落している機能に遭遇しました。最初に頭に浮かんだのは、必要な場...

チェックボックスとラジオボタンの配置を実装する方法

ブラウザによって動作が異なるだけでなく、フォントやテキスト サイズによっても動作が異なります。フォー...

MySQL インデックス最適化の説明

日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...

フロントエンドJavaScriptの約束

目次1. Promiseとは何か2. 基本的な使い方3. Promiseメソッド3.1 Promis...

ページ切り替え効果を実現するJSコード

この記事の例では、ページ切り替え効果を実現するためのJSコードの具体的なコードを参考までに共有してい...

Mysql8.0はソート問題を解決するためにウィンドウ関数を使用する

MySQL ウィンドウ関数の紹介MySQL は MySQL 8.0 以降、ウィンドウ関数をサポートし...

シンプルな CSS テキストアニメーション効果

成果を達成する 実装コードhtml <div id=コンテナ> いらっしゃいませ <...