私は現在、いくつかの CSS スタイルのライブラリを作成しています (jQuery で定義されているものもあります。そのため、解決策として JavaScript/jQuery を自由に使用してください。通常の CSS ではどちらの方法でも可能ではないと思います)。
特定のクラス (例では .style-container) を持つ親要素が存在する場合にのみ適用されるはずのパーツがいくつかあります。
もちろん、これはすべての CSS セレクターの前にクラスを追加することで可能です。
ただし、転送する必要があるデータがさらに多く必要になるため、CSS ファイルを適用する可能性があり、それは特定の要素だけのコンテンツであり、ドキュメント全体ではなく子であると考えました。
この CSS を想像してみてください (かなり単純化されています):
h1 {
color: #f00;
border-bottom: 1px solid #000;
}
この HTML ドキュメント (本文の一部):
<div class="style-container">
<h1>This should be styled</h1>
</div>
<div>
<h1>This should be standard style</h1>
</div>
そして今、クラスとその子要素を持つすべての要素のファイルをロードするための JavaScript/jQuery がいくつかあるかもしれません。
ノート:
以前はなかった JavaScript/jQuery を介して新しい要素が表示される可能性があり、コンテンツが非常に速く変更された場合に、読み込みに多くのリソースが必要になる可能性があるため、スタイル全体を再度読み込みたくありません。
また、待機することもできません。待機している間、要素のスタイルが設定されないためです。
編集: もう一度指摘します: 標準の CSS 子セレクターよりも優れたオプションを探しています。これは次のように機能します。
.style-container h1 {
color: #f00;
border-bottom: 1px solid #000;
}
サーバーからクライアントに転送されるデータが多くなるため、これが必要です。これを理解するには: コードの一部を最小化した形式でセレクターを使用する場合と使用しない場合があります。セレクターがあるバージョンは 3698 文字、セレクターがないバージョンは 2538 文字必要です。それは1160文字の違いです。または、kB では、3.61kB - 2.47kB = 1.14kB の差があります。それは非常に小さいように見えますが、コードのごく一部にすぎません。コードは 10 倍の大きさになると予想しています。これにより、11.4kB の差が生じます。私の意見では、それはモバイルデバイスにとってかなり大きな量です...