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

推薦する

vue3 テレポートの詳細な使用例

公式ウェブサイトhttps://cli.vuejs.org/ja/ガイド/場合によっては、コンポーネ...

VueにおけるAxios非同期通信の詳細な説明

1. まず、インタラクティブに使用するための .json ファイルを作成します。json データ形式...

ローカルストレージにブール型の値を保存する際の落とし穴を解決する

LocalStorageはブール値を保存します今日、ブール値データを保存するために localsto...

MySQL 8.0.22 のダウンロード、インストール、設定方法のグラフィックチュートリアル

参考までにMySQL 8.0.22をダウンロードしてインストールしてください。具体的な内容は次のとお...

Echarts バー水平棒グラフのサンプルコード

目次横棒グラフデータとスタイルを動的に更新するeChartsの幅と高さの適応の問題を解決する縦棒グラ...

Spring Boot 階層化パッケージング Docker イメージの実践と分析 (推奨)

目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...

スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

ant-design-vue テーブルのスケーラブルな列の問題に対する完璧なソリューション。固定列と...

postcss-pxtorem モバイル適応の実装

コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...

MySQL の null と not null、null と空の値の違いの詳細な説明 ''''

MySQL を長い間使用してきた多くの人は、これら 2 つのフィールド属性の概念をまだよく理解して...

なぜCSSをヘッドタグに配置する必要があるのか

考えてみてください。なぜcss 、 javascriptのようにbodyタグの末尾ではなく、 hea...

新しいカーネルをLinuxシステムに移植する手順

1. ubuntu16.04 イメージと対応する ubuntu16.04 カーネル バージョンのソー...

ウェブサイトのBGM実装方法

個々のウェブマスターにとって、自分のウェブサイトをいかにユニークで個性あふれるものにするかは、常に絶...

nginx パニック問題の解決方法の詳細な説明

nginx パニック問題に関しては、まず nginx の起動プロセス中に、マスター プロセスが構成フ...

CSS を使用して、画像に 3D の凸型と凹型のエフェクト (フレーム外に凸型、またはフレーム内に凹型) を実現します。

Ⅰ. 問題の説明: CSS を使用して画像の 3D 凸凹効果を実現します。 Ⅱ実施手順は以下のとお...

WebページでjQueryを参照する方法

CDN(コンテンツ配信ネットワーク)を通じて参照できます。 jQuery は Google と Mi...