CSS3 疑似クラスセレクターの簡単なレビュー

CSS3 疑似クラスセレクターの簡単なレビュー

序文

CSS がフロントエンド開発の基本的なスキルであるならば、「セレクター」は基礎中の基礎です。これらの紛らわしいセレクターをコピーしたり学習したりしているのであれば、あなたは正しい場所に来ています、私の古い友人よ。

この記事では、それぞれの機能を直接比較して、すぐに習得できるようにします。

  • 第一子
  • 最後の子
  • 最初のタイプ
  • 最後のタイプ
  • 一人っ子
  • 唯一のタイプ
  • n番目の子
  • 最後の n 番目の子
  • n番目のタイプ
  • 最後の n 番目のタイプ

第一子と末子

次の 2 つのセレクターは、兄弟セットの最初の要素と一致します。

注: このセレクターが機能するには、実際に満たす必要がある条件が 3 つあります。

  • 前のセレクタに一致します。この場合はp
  • 兄弟要素のグループである
  • 最初の(または最後の)要素である

ここではlast-childについて詳しく説明しません。違いは、後ろから前に向かって一致することです。

最初のタイプと最後のタイプ

これらの 2 つのセレクターは、要素が実際にグループ内の最初の (最後の) 要素であるかどうかに関係なく、同じタイプの最初の (最後の) 要素と一致します。

注: このセレクターが機能するには、実際に満たす必要がある条件が 2 つあります。

  • 前のセレクタに一致します。この場合はp
  • 兄弟要素のグループである

ここではlast-of-typeについて詳しく説明しません。違いは、後ろから前に向かって一致することです。

唯一の子と唯一の型

only-child兄弟要素を持たない要素、つまり「孤立した」要素に一致します。

上図の「分離された」要素は最初の<p>とネストされた<span>であり、どちらもセレクターによって一致します。

only-of-type兄弟要素のセットの中で一意の型の要素に一致します。

最初の<p> 、2 番目の<p> 、および最後の<span>はすべて親要素タイプ内で一意であるため、セレクタによって一致します。

n 番目の子と n 番目の最後の子

これらの疑似クラス セレクターの最も興味深い点は、式an+bを渡して、この式に従って要素を一致させることができることです。この式を操作する方法は多数あるため、多くの人がこの式と一致するコンテンツのすべての組み合わせを記憶しています。

実際、数学的な観点からルールを理解するのは非常に簡単なので、私たちの考え方は CSS によって固められています。たとえば、次のコードがあります。

<スタイル>
  p:n番目の子(2n+1){
    色:青;
  }
</スタイル>
<本文>
  <p>最初の行</p>
  <p>2行目</p>
  <p>3行目</p>
</本文>

思考モード:

  1. まず、一致した要素を収集します。この例では、3つの<p>タグです。
  2. 添え字 0 から 2 までを数えて<p>の数を表し、それを数式に代入して評価します。
  3. 要素を対応する添え字と一致させます(要素の添え字は1から始まります)

結果:

説明する
2nすべての偶数要素
2n+1すべての奇数要素
n と n+1すべての要素
2+2 番目2 番目の要素以降の要素 (2 番目の要素を含む)
3+3 番目3番目の要素以降の要素(3番目の要素を含む)
0オン一致するものはありません
3n+4 4、7、10、13 ....
1最初の要素のみに一致
-n+2最初の2つの要素のみに一致します
n番目の子(奇数)奇妙な要素
n番目の子(偶数)偶数要素

ただし、 nth-child依然として同じ兄弟要素のセットに一致することを忘れないでください。興味深いのは、 nth-childセレクターを使用してフィルタリングしますが、スタイルを適用するときに、一致した要素にスタイルを適用しないことです。

上の図では、 <div>内の 2 つの<p>要素のグループが兄弟要素として一致していますが、興味深いことに、3 番目の<p>要素「3 行目」も一致しています。つまり、一致した<p>要素ではなく、兄弟要素のグループにスタイルが直接適用されます。ただし、図の「3 番目のグループ」の<p><div>である場合、異なるタイプのスタイルは適用されないことに注意してください。

nth-last-childは後ろから前へのバージョンですが、ここでは詳細な例は示しません。

MDN では、要素の数に応じて要素のスタイルを制御できる興味深い例も紹介されています。

li:n番目最後の子(n+3)、
li:n番目最後の子(n+3) ~ li {
  色: 赤;
}
<h4>4 つの項目のリスト (スタイル付き):</h4>
<オル>
  <li>1つ</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ol>

<h4>2 つの項目のリスト (スタイルなし):</h4>
<オル>
  <li>1つ</li>
  <li>2</li>
</ol>

n 番目のタイプと n 番目の最後のタイプ

nth-of-type :

  • 同じグループ内の同じタイプの兄弟要素
  • 数式の計算値に対応する要素を一致させます

nth-of-typenth-childと異なることに気付きましたか? 計算後、スタイルは兄弟要素ではなく、一致した要素に適用されます。

nth-last-of-type 、ここでは詳しく説明しません。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  つまり、フィルターコレクション

>>:  Docker で Elasticsearch Kibana と ik Word Segender をデプロイする詳細な説明

推薦する

ランダムな文字を生成する Java サンプルコード

サンプルコード: java.util.Random をインポートします。 java.util.UUI...

Linux 環境に nginx をインストールするチュートリアル

目次1. 必要な環境をインストールする //gccをインストールする yum で gcc-c++ を...

HTML テーブル マークアップ チュートリアル (41): テーブル ヘッダーの幅と高さの属性 WIDTH、HEIGHT

デフォルトでは、ヘッダーの幅と高さはコンテンツに応じて自動的に調整されます。ヘッダーの幅と高さを手動...

Django は Pillow を使用して検証コード機能を簡単に設定します (Python)

1. モジュールをインポートし、検証状態を定義する PIL から Image、ImageDraw、...

React スキャフォールディングのパスエイリアスを設定する方法

この記事を書いている時点でのReactのバージョンは16.13.1です1 npm run eject...

HTML の小さなタグの使用に関するヒント

<em></em> などのフレーズ要素を使用すると、意図した視覚スタイルを維...

正の整数かどうかを判断するMYSQLカスタム関数の例コード

関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...

HTMLシールドの右クリックメニューと左クリック入力機能の例

右クリックメニューを無効にする <body oncontextmenu=self.event....

MySQL の WriteSet 並列レプリケーションの簡単な分析

【歴史的背景】私は 3 年間 MySQL-DBA として働いてきましたが、MySQL が「基本的に利...

Docker チュートリアル: コンテナの使用 (簡単な例)

Docker を初めて使用する場合は、コンテナの管理を始めるために習得する必要がある基本的なコマン...

js が CSS 属性 (値) のサポートを決定して通知する状況の分析

新しい CSS 機能を使用する場合、その互換性は常に考慮されます。おそらく、その互換性、どのブラウザ...

HTML でのメタタグと使用法の詳細な説明

これ以上無駄話をして時間を無駄にしないので、今日の話題を始めましょう。 HTML のメタタグ1. メ...

プロジェクトのフロントエンドとバックエンドでの Echart チャートの使用に関する詳細な説明

目次序文1. プロジェクトアーキテクチャ2. Echart公式サイトにアクセスして自己分析を学ぶ2....

Mac MySQL のルートパスワードをリセットするチュートリアル

免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...