ホームページ > ウェブフロントエンド > CSSチュートリアル > CSS の特異性を理解する: スタイル ルールの重要性に関するガイド

CSS の特異性を理解する: スタイル ルールの重要性に関するガイド

Patricia Arquette
リリース: 2024-11-22 10:42:16
オリジナル
998 人が閲覧しました

Understanding CSS Specificity: Guide to Style Rule Importance

CSS 愛好家の皆さん、こんにちは!

導入 ?

CSS スタイルが期待どおりに適用されないことがあるのはなぜだろうと考えたことはありますか?あなたは、CSS の最も謎めいた概念の 1 つである 特異性 を解明しようとしています。これは、選択したすべてのセレクターが Web ページの外観の結果を変える可能性があるチェスのゲームと考えてください。

この記事で学べる内容は次のとおりです:

  • 特異性を理解する : それが何であり、CSS スタイルにとって重要である理由。

  • 特異性の計算方法 : セレクターのスコアリング システムを分析します。

  • 実践例 : 具体性が影響する現実世界のシナリオ。

  • 高度な特異性状況 : ネストされたセレクターと疑似要素の処理。

  • 詳細性の管理 : CSS をクリーンに保ち、レイアウトを予測可能に保つためのヒント。

最後には、あなたは CSS ルールのマスターになるでしょう。

CSS の特異性とは何ですか? ?

特異性は、使用するセレクターに基づいて CSS 宣言に与えられる重みです。これは、CSS ルールが競合する場合にどのスタイルが適用されるかを決定するものです。これは、各セレクター タイプがポイントに貢献し、最も高いスコアを持つルールが勝利するスコアリング システムと考えてください。

特異性の階層 ?

特異度の計算方法は次のとおりです。

  1. インライン スタイル : これらは、style 属性を介して要素に直接適用されます。それらは最も具体的で、1,0,0,0 をスコアします。

  2. ID : ID セレクターはスコアに 0,1,0,0 を追加します。これらは非常に具体的ですが、インライン スタイルほどではありません。

  3. クラス、属性、および疑似クラス : これらのそれぞれは、特異性スコアに 0,0,1,0 を追加します。これには、.classname、[attribute]、:hover などが含まれます。

  4. 要素と擬似要素 : これらは最も具体性が低く、0,0,0,1 が追加されます。例としては、div、p、::before などがあります。

具体性の具体例 ??

インラインスタイルの優位性

<div>





<pre class="brush:php;toolbar:false">div {
    color: blue;
}
ログイン後にコピー
ログイン後にコピー

結果: テキストは 赤色になります。インライン スタイルは、他のすべてのセレクターよりも優先されます。

ID オーバーライドクラス

<div>





<pre class="brush:php;toolbar:false">#unique {
    color: red;
}
.common {
    color: blue;
}
ログイン後にコピー
ログイン後にコピー

結果: テキストは 赤色になります。 ID セレクターはクラスよりも高い特異性を持っています。

複数クラスと単一クラス

<div>





<pre class="brush:php;toolbar:false">div {
    color: blue;
}
ログイン後にコピー
ログイン後にコピー

結果: テキストは 緑色になります。セレクターを組み合わせると、特異性が高まります。

実際の具体性?

  • セレクターの結合 : セレクターを結合して、具体性を高めることができます。たとえば、div#id.class は、単なる #id や .class.

  • よりも具体的になります。
  • 順序の重要性 : 具体性が等しい場合、最後に定義されたルールが優先されます。これはカスケードとして知られています。

  • ! important : 最後の手段として、 ! important は特異性をオーバーライドできますが、メンテナンスの問題が発生する可能性があるため、慎重に使用することをお勧めします。

高度な特異性状況?

ネストされたセレクター

<div>





<pre class="brush:php;toolbar:false">#unique {
    color: red;
}
.common {
    color: blue;
}
ログイン後にコピー
ログイン後にコピー

結果: テキストは になります。ネストされたセレクターは、セレクターのチェーンによりより具体的になります。

疑似クラスと属性

<div>





<pre class="brush:php;toolbar:false">.red {
    color: red;
}
.red.blue {
    color: green;
}
ログイン後にコピー
<div>





<pre class="brush:php;toolbar:false">#container .text {
    color: purple;
}
p.text {
    color: green;
}

ログイン後にコピー

結果: 属性セレクターはクラスと同じ特異性レベルで考慮されるため、入力の背景は 黄色 になります。

特異性を管理するためのヒント?

  • クラスを使用する : クラスは、スタイル設定用の ID よりも保守しやすいです。

  • 過剰な詳細性を避ける : スタイル設定に ID セレクターを過度に使用しないでください。これらにより、必要なときに CSS をオーバーライドすることが難しくなる可能性があります。

  • 継承について理解する : 一部のプロパティは継承され、ネストされた要素内での特異性の動作に影響を与える可能性があります。

  • 特異性を有利に活用する : 重要なスタイルの特異性を高める時期を理解してください。ただし、CSS 構造はきれいに保ちます。

結論

CSS の仕様により、競合が発生した場合にどのスタイルが適用されるかが決まります。特異性を理解して習得することで、意図したとおりに動作する CSS を作成し、効率的で管理しやすいスタイルシートを作成できます。特異性とは、単にルールを定着させることだけではないことを忘れないでください。それは先見性と柔軟性を持ってデザインすることです。

コーディングを楽しんでください。CSS が常に必要なだけ具体的になりますように! ?


?こんにちは、私はエレフテリアです。コミュニティ マネージャー開発者、講演者、コンテンツ作成者

です。

?この記事が気に入ったら、共有することを検討してください。

? すべてのリンク | X | LinkedIn

以上がCSS の特異性を理解する: スタイル ルールの重要性に関するガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート