3

これが私が解決しようとしている困難です。クライアントのページ内でスクローラー インターフェイスを開発しています。基本的に、Doctype、周囲の要素、およびクライアントのページに既にあるスタイルシートまたはスクリプトを変更することはできません。コードの小さなブロックをこの中に「合わせる」必要があります。これは Web 開発者にとって一般的です。ここで注意が必要なのは、ブロック内の一部の img 要素が、継承されたクライアントのスタイルシート内の CSS ルールの対象になっていることです (もちろん、これを削除または変更することはできません)。この場合、これを補うために、より具体的な CSS ルールを自分で実際に使用できない理由をここで説明するには長すぎますが、それは事実です。だから私の質問は:別のルールを作成するかルールを削除する以外に、HTML 要素が CSS ルールの対象にならないようにする方法はありますか? 難しいのは、

.containter1 .containter3 { ... }

内の要素をターゲットにします:

<div class="container1">
   <div class="containter2">
      <div class="containter3">Element
      ...

ページ内の要素は、CSS ルールの「壁」を作成しません。CSS ルールは、コンテナを「ジャンプ」して要素をターゲットにします。したがって、次のようなルール

img { ... }

任意の img タグをターゲットにします。これを補うために私が知っている唯一の方法は、保護する正確な img を対象とするより具体的な CSS ルールを作成することです。でも、ここではそれができません。HTML を追加するだけで、CSS ルールを作成せずに同じ結果を得る方法はありますか?

/ * 明確にするために編集* /

私は CSS の規則、特異性、継承などを知っています。私の質問はより実用的でした。問題を明確にするために、次の例を検討してください。クライアントのスタイルシートに触れることができず、次の一般的なルールが定義されているとします。

img { display:none; }

問題は、次のように、対応する一般的なルールを設定して反対のことを行うことができないことです。

img { display:not-none; }

無に反するものなど存在しないからです。の反対は、、 、 などの"none"いずれかです。"inline""block""inline-block"

基本的に、これは最初の一般的な規則により、ページ内のdisplayすべてのプロパティを明示的に定義する必要があることを意味しimgます。そして、それはひどいです。だから私はこのような状況を解決するためのハックを見つけようとしていました (私の実際の問題はこれよりもさらに悪いですが、この例ははるかに明確で説明が簡単です)。

4

4 に答える 4

2

コードを変更せずにターゲティングを防止したいというのであれば、それは明らかに不可能です。

インライン スタイルは常にスタイル シート ルールをオーバーライドします (!importantタグを使用していない限り、それも使用する必要があります)。

お気に入りの CSS リセットの構文を使用して、必要な要素をリセットできるはずです。以下にいくつかのオプションを示します。

http://www.cssreset.com/

だから、何かのような -

<div style="border:0 !important;padding:0 !important;margin:0 !important;height:auto;"></div>

あなたの最善の策です。

于 2012-11-15T16:27:31.073 に答える
0

いいえ、他のルールが特定の要素に適用されるのを止める方法はありません。その html 要素のすべてのルールを再定義して、他のすべてのルールを上書きする必要があります。

于 2014-02-04T11:58:53.287 に答える
0

特定の要素の CSS を変更できる唯一の方法は、既存のスタイルシットを変更するか、より具体的で他のスタイルをオーバーロードする新しいスタイルを作成することです。

コードの小さなブロックをこの中に「収まる」ようにする必要があります。

コードのブロックを作成したら、次のように HTML コードのブロック内にスタイル タグを配置できます。

<div id="block_of_code_available_for_modification">
   <style type="text/css">
       //css code which will fix styles of your content without influencing other elements on a page.
   </style>
</div>

または、スタイルを修正する必要がある要素がいくつかある場合はstyle、HTML 要素の属性を使用できます (HTML の変更を設定できるようになったら、いつでも次のようなものを追加できます... まあ、スタイル タグを追加するのと同じです) . style 属性内の css プロパティの優先度が最も高くなります。!important一部の以前のスタイルにない場合を除いて:

<img style="any css properties you need" src="..." />
于 2012-11-15T16:26:53.333 に答える