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 をデプロイする詳細な説明

推薦する

MySQL のデータベース パフォーマンスに影響を与える要因の説明

データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...

ウェブデザインを改善するための 8 つの CSS ツールを共有する

ウェブサイトのデザインを編集または変更する必要がある場合、CSS が重要な役割を果たします。 CSS...

プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装

目次バイト機能使用環境プロジェクトを構築する構成vite.config.ts tsconfig.js...

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...

Oracle の開閉の 4 つのモード

>1 データベースを起動するcmd コマンド ウィンドウで、「sqlplus」を直接入力して ...

vite2.0 設定学習の詳しい説明(typescript 版)

導入悠宇希の原文です。 vite は Vue CLI に似ています。vite も、基本的なプロジェク...

Unicode 署名 BOM の詳細な説明

Unicode 署名 BOM - BOM とは何ですか? BOM は Byte Order Mark...

Alibaba Cloud Centos7.3 インストール mysql5.7.18 rpm インストール チュートリアル

MariaDBをアンインストールするCentOS7 ではデフォルトで MySQL の代わりに Mar...

MySQL マルチテーブルクエリの詳細な説明

よく食べて十分に休息を取るというのは簡単なことのように思えますが、実際に実行するのはそれほど簡単では...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

IIS7 IIS8 リバースプロキシルールの記述、インストール、構成方法

目的: ステーションAをステーションBのセカンダリディレクトリとして扱うのように: http://w...

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経...

PostgreSQL データベースにおける varchar、char、text の比較に関する簡単な説明

以下のように表示されます。名前説明する文字可変(n)、varchar(n)長さ制限あり、可変長文字(...

mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...

jQueryはすべての選択と逆選択操作ケースを実装します

この記事では、全選択と逆選択操作を実装するためのjQueryの具体的なコードを参考までに共有します。...