目次
注:特異性を計算
結論
Web開発におけるCSS特異性の重要性は何ですか?
CSS特異性は、ブラウザが適用するCSSルールを決定するため、Web開発の重要な概念です。複数のCSSルールを要素に適用できる場合、ブラウザは特定のルールに従って使用するルールを決定します。 CSSの特異性を理解することは、開発者がより効率的で効率的なCSSコードを書き、不必要なオーバーライドを回避し、CSSの問題をより効果的にトラブルシューティングするのに役立ちます。
CSS特異性の計算は、CSSルールで使用されるさまざまなタイプのセレクターに基づいています。各タイプのセレクターの特異性値は異なります。インラインスタイルの特異性が最も高く、その後にIDセレクター、クラスセレクター、属性セレクター、および擬似クラスが続き、最後にセレクターと擬似エレメントを型が付いています。 CSSルールの特異性は、そのセレクター固有の値の合計です。
例を考えてみましょう。クラスセレクター.class1を使用したCSSルールとIDセレクター#id1を使用した別のルールがあるとします。これらの2つのルールを同じ要素に適用できる場合、IDセレクターはクラスセレクターよりも特異性が高いため、IDセレクターを備えたルールが適用されます。
2つのCSSルールが同じ特異性を持っている場合、CSSコードに表示される最後のルールが適用されます。これは、CSSが同じ特異性を持つルールを扱う際に「最後のルール勝利」戦略に従うためです。
CSSルールの特異性を高めることにより、CSSの特異性をオーバーライドできます。これは、ルールにより具体的なセレクターを追加することで実行できます。 CSS特異性をオーバーライドする別の方法は、重要なルールを使用することです。ただし、CSSコードを管理してデバッグするのがより困難になるため、可能な限り重要なことを避ける必要があります。
CSS特異性における相続の役割は何ですか?
ワイルドカードセレクターはCSS特異性にどのように影響しますか?
CSSの擬似要素の特異性は何ですか?
:not()擬似クラスはCSS特異性にどのように影響しますか?
単一のCSSルールで複数のセレクターを使用できますか?特異性にどのように影響しますか?

CSSセレクター:特異性

Feb 19, 2025 am 11:20 AM

CSS Selectors: Specificity

CSS Selectors: Specificity

次の抜粋は、ティファニー・B・ブラウンによって書かれた本「CSSマスター」からのものです。この本は世界中の店舗で入手できます。また、ここで電子書籍バージョンを購入することもできます。

CSS特異性により、最終的に要素に適用されるスタイル宣言が決定されます。 WildCardセレクター(*)の特異性が最も低く、IDセレクターの特異性が最も高くなっています。子孫セレクター(例:p img)とサブセレクター(例:.panel> h2)は、型セレクター(p、img、またはh1など)よりも具体的です。

一見すると、正確な特異性値の計算が難しいと思われます。セレクターレベル3に記載されているように、

が必要です
  • 統計セレクター内のIDセレクターの数(= a)
  • 統計セレクターのクラスセレクターの数、属性セレクター、および擬似クラスの数(= b)
  • 統計セレクターのタイプセレクターと擬似要素の数(= c)
  • ワイルドカードセレクターを無視してください

これらのa、b、およびc値を組み合わせて、最終的な特定の値を形成します。たとえば、IDセレクター#FOOの特異性は1,0,0です。属性セレクター([type = email])とクラスセレクター(例えば.chart)の特異性は0,1,0です。擬似クラス(例:初代、例えば、chart:first-child)を追加すると、特異性が0,2,0になります。ただし、単純なタイプまたは要素セレクター(H1またはPなど)を使用すると、特異性が0,0,1のみになります。

注:特異性を計算

Keegan Streetの特異性計算機とJoshua PeekのCSSは、セレクターの特異性の学習と計算ヘルプを説明します。

もちろん、複雑なセレクターと組み合わせセレクターは、より高い特異性値を生成します。例を見てみましょう。次のCSSを検討してください:

<code>ul#story-list > .book-review {
    color: #0c0;
}

#story-list > .book-review {
    color: #f60;
}</code>
ログイン後にコピー

これらの2つのルールセットは似ていますが、同じではありません。最初のセレクター、UL#STORY-LIST&GT; .BookReviewには、型セレクター(UL)、IDセレクター(#Story-List)、およびクラスセレクター(.BookReview)が含まれています。その特異性値は1,1,1です。 2番目のセレクター#Story-List&GT;その特異性値は1,1,0です。 #Story-List&GT; 。

:linkまたは:nivalidなどのpseudoclassesは、クラスセレクターと同じレベルの特異性を持っています。 a:linkとa.externalの特異性値は両方とも0,1,1です。同様に、:: :: befforeおよび:: aftherなどの擬似要素は、タイプまたは要素セレクターと同じくらい具体的です。 2つのセレクターの特異性が同じ場合、カスケードが有効になります。例は次のとおりです。

<code>a:link {
    color: #369;
}
a.external {
    color: #f60;
}</code>
ログイン後にコピー
このCSSを適用すると、.Externalクラスを適用するリンクを除き、すべてのリンクはスレートブルーになります。これらのリンクはオレンジに変更されます。

特異性が低いことは、セレクターの拡散を防ぐのに役立ちます。つまり、セレクターの特異性と長さが時間とともに増加する傾向です。これは通常、チームに新しい開発者を追加したり、ウェブサイトに新しいコンテンツフォームを追加したりすると発生します。セレクターの拡散は、長期的なメンテナンスの困難にもつながる可能性があります。より具体的なセレクターを使用して他のルールセットを上書きするか、コードをリファクタリングする必要があります。セレクターが長くなると、CSSファイルの重みも増加します。

第2章で特異性を低く保つための戦略について説明します。

結論

この章を読んだ後、CSSセレクターをよく理解する必要があります。具体的には、方法を知っておく必要があります

セレクターを使用して特定の要素、擬似要素、および擬似クラスにCSSを適用します
  • 擬似要素と擬似クラスの違いを理解してください
  • セレクターレベル3および4仕様で導入された新しい擬似クラスを使用してください
  • 計算特異性
  • 次の章では、保守可能で拡張可能なCSSを書くためのゴールデンルールのいくつかを紹介します。

CSSセレクターと特異性(FAQ)

に関するよくある質問

Web開発におけるCSS特異性の重要性は何ですか?

CSS特異性は、ブラウザが適用するCSSルールを決定するため、Web開発の重要な概念です。複数のCSSルールを要素に適用できる場合、ブラウザは特定のルールに従って使用するルールを決定します。 CSSの特異性を理解することは、開発者がより効率的で効率的なCSSコードを書き、不必要なオーバーライドを回避し、CSSの問題をより効果的にトラブルシューティングするのに役立ちます。

CSS特異性を計算する方法は?

CSS特異性の計算は、CSSルールで使用されるさまざまなタイプのセレクターに基づいています。各タイプのセレクターの特異性値は異なります。インラインスタイルの特異性が最も高く、その後にIDセレクター、クラスセレクター、属性セレクター、および擬似クラスが続き、最後にセレクターと擬似エレメントを型が付いています。 CSSルールの特異性は、そのセレクター固有の値の合計です。

CSS特異性の概念を例で説明できますか?

例を考えてみましょう。クラスセレクター.class1を使用したCSSルールとIDセレクター#id1を使用した別のルールがあるとします。これらの2つのルールを同じ要素に適用できる場合、IDセレクターはクラスセレクターよりも特異性が高いため、IDセレクターを備えたルールが適用されます。

2つのCSSルールが同じ特異性を持っている場合はどうなりますか?

2つのCSSルールが同じ特異性を持っている場合、CSSコードに表示される最後のルールが適用されます。これは、CSSが同じ特異性を持つルールを扱う際に「最後のルール勝利」戦略に従うためです。

CSS特異性をカバーする方法は?

CSSルールの特異性を高めることにより、CSSの特異性をオーバーライドできます。これは、ルールにより具体的なセレクターを追加することで実行できます。 CSS特異性をオーバーライドする別の方法は、重要なルールを使用することです。ただし、CSSコードを管理してデバッグするのがより困難になるため、可能な限り重要なことを避ける必要があります。

CSS特異性における相続の役割は何ですか?

継承は、特定のタイプの属性が親要素からその子要素に自動的に渡されるCSSの機能です。ただし、継承されたスタイルは特異性が最も低く、要素に適用される直接的なスタイルによって簡単に上書きできます。

ワイルドカードセレクターはCSS特異性にどのように影響しますか?

WildCardセレクター(*)は、CSS特異性に影響を与えません。これは、その特異性値が0,0,0,0であることを意味します。したがって、同じルールで使用される他のセレクターは、ワイルドカードセレクターをオーバーライドします。

CSSの擬似要素の特異性は何ですか?

CSSの擬似要素の特異性は0,0,0,1です。これは、タイプセレクター(Div、Pなど)と同じ特異性を持ち、クラスセレクター、IDセレクター、インラインスタイルによってオーバーライドされることを意味します。

:not()擬似クラスはCSS特異性にどのように影響しますか?

:not()cssの擬似クラスは、セレクターの特異性を向上させません。代わりに、特定の計算は、not()関数に渡されるパラメーターに基づいています。たとえば、in:not(.class1)、特異性は.class1と同じです。

単一のCSSルールで複数のセレクターを使用できますか?特異性にどのように影響しますか?

はい、単一のCSSルールで複数のセレクターを使用できます。このようなルールの特異性は、すべてのセレクターの特異性の合計です。たとえば、#id1.class1では、特異性は#id1および.class1特異性の合計です。

以上がCSSセレクター:特異性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 HTML、CSS、JavaScriptを使用してアニメーションカウントダウンタイマーを作成する方法 Apr 11, 2025 am 11:29 AM

プロジェクトにカウントダウンタイマーが必要だったことはありますか?そのようなことのために、プラグインに手を伸ばすのは自然なことかもしれませんが、実際にはもっとたくさんあります

HTMLデータ属性ガイド HTMLデータ属性ガイド Apr 11, 2025 am 11:50 AM

HTML、CSS、およびJavaScriptのデータ属性について知りたいと思っていたことはすべて。

CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? CSSを介してファーストクラスの名前アイテムを使用して子要素を選択する方法は? Apr 05, 2025 pm 11:24 PM

要素の数が固定されていない場合、CSSを介して指定されたクラス名の最初の子要素を選択する方法。 HTML構造を処理するとき、あなたはしばしば異なる要素に遭遇します...

フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? フレックスレイアウト内の紫色のスラッシュ領域が誤って「オーバーフロー空間」と見なされるのはなぜですか? Apr 05, 2025 pm 05:51 PM

フレックスレイアウトの紫色のスラッシュ領域に関する質問フレックスレイアウトを使用すると、開発者ツールなどの混乱する現象に遭遇する可能性があります(D ...

SASSをより速くするための概念の証明 SASSをより速くするための概念の証明 Apr 16, 2025 am 10:38 AM

新しいプロジェクトの開始時に、SASSコンピレーションは瞬く間に起こります。これは、特にbrowsersyncとペアになっている場合は素晴らしい気分です。

SVGでタータンパターンを生成する静的サイトを作成する方法 SVGでタータンパターンを生成する静的サイトを作成する方法 Apr 09, 2025 am 11:29 AM

タータンは、スコットランド、特にファッショナブルなキルトに通常関連する模様のある布です。 Tartanify.comでは、5,000を超えるTartanを集めました

See all articles