ホームページ >ウェブフロントエンド >CSSチュートリアル >クラス セレクターが CSS のリンク擬似クラス スタイルをオーバーライドするのはなぜですか?

クラス セレクターが CSS のリンク擬似クラス スタイルをオーバーライドするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-25 16:19:13336ブラウズ

Why Does a Class Selector Override Link Pseudo-class Styles in CSS?

.foo セレクターがリンク スタイル仕様をオーバーライドするのはなぜですか?

CSS は、特異性ルールに基づいてスタイルを適用します。サンプル コードでは、リンク、訪問済み、ホバー、およびアクティブ状態を等しい特異性 (0 0 1 1) で定義します。ただし、.foo セレクターは、わずかに高い特異性 (0 0 2 1) を持つ追加クラスを導入します。

オーバーライド メカニズム

異なる特異性レベルを持つ複数のセレクターが適用される場合同じ要素の場合、最も高い特異性を持つセレクターが、より低い特異性を持つセレクターをオーバーライドします。ここで、.foo a:link および .foo a:visited は、a:hover および a:active よりも高い特異性を持っています。

したがって、.foo セレクターはリンクおよび動的擬似クラス セレクターをオーバーライドし、次のようなリンクが発生します。 .foo クラスは、適用される他のスタイルに関係なく緑色に表示されます。

可能修正

ホバー状態が .foo セレクターを確実にオーバーライドするには、次のことができます:

  1. より具体的な .foo セレクターを追加

    別の .foo セレクターを追加して、その特異性を高めます。 クラス。例:

    .foo .link a:link, .foo .link a:visited {
        color: green;
    }

    これにより、.link クラスが .foo セレクターをオーバーライドし、ホバー状態が有効になることが保証されます。

  2. !重要な宣言

    リンクとホバー スタイルを強制的にオーバーライドします! important 宣言を使用した .foo セレクター:

    a:link, a:visited {
        color: blue !important;
    }

    これにより、カラー プロパティが効果的に「ロック」され、他のセレクターが変更できないようになります。

以上がクラス セレクターが CSS のリンク擬似クラス スタイルをオーバーライドするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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