ホームページ  >  記事  >  ウェブフロントエンド  >  複数の :before 擬似要素を同じ要素に適用できますか?

複数の :before 擬似要素を同じ要素に適用できますか?

DDD
DDDオリジナル
2024-11-09 22:01:02742ブラウズ

Can You Apply Multiple :before Pseudo-Elements to the Same Element?

同じ要素に対して複数の :before 疑似要素が存在できますか?

質問:

同じ要素に複数の:before擬似要素を適用することは可能でしょうか?例:

.circle:before {
    content: "CF";
    font-size: 19px;
}
.now:before{
    content: "Now";
    font-size: 19px;
    color: black;
}

答え:

いいえ、CSS2.1 では、要素は常に、任意の種類の疑似要素を 1 つだけ持つことができると規定されています。 。これは、要素は :before と :after 疑似要素の両方を持つことができますが、各タイプを複数持つことはできないことを意味します。

その結果、複数の :before ルールが同じ要素をターゲットにすると、それらは単一の :before 擬似要素にカスケードされます。たとえば、上記のコードは次のように折りたたまれます。

.circle.now:before {
    content: "Now";
    font-size: 19px;
    color: black;
}

最も優先順位が高い最後のコンテンツ宣言のみが有効になります。

回避策:

複数の :before 擬似要素を同じ要素に適用する場合は、組み合わせたセレクターを使用して、ブラウザーが何を行うべきかを正確に指定できます。例:

.circle.now:before {
    content: "○";
}
.circle.now:hover:before {
    background: #ccc;
}

これにより、コンテンツとスタイルが異なる 2 つの :before 疑似要素が作成されます。

以上が複数の :before 擬似要素を同じ要素に適用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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