4

私は、JavaScriptを介してホストサイトにロードされたhtmlとスタイルで構成される動的な広告バナーを開発しました。ある特定のサイトでは、メインページのスタイルシートの特定のスタイルが、動的にロードしているhtmlに影響を与えています。

動的にロードされたhtmlに、htmlと一緒にロードしたcssのスタイルのみをレンダリングさせ、ホストページのスタイルを無視する手法はありますか?

アドバイスをいただければ幸いです。

4

6 に答える 6

2

バナーをiframeに入れます。

于 2012-07-10T11:17:07.837 に答える
0

CSSファイルをHTMLページに添付した場合、それに対する唯一の解決策は、!important競合するすべてのCSSプロパティに使用することです-

.className{
  color: red !important;
}
于 2012-07-10T11:20:01.540 に答える
0

CSSに!importantを追加します。

p {色:#ff0000!重要; }

于 2012-07-10T11:14:52.923 に答える
0

ええ、本当に簡単な方法があります。クラスをメインページのHTMLから分離しないのはなぜですか。競合が発生しないようにする場合は、一意のIDを付与します。

メインページにはcssクラスがあり.input ます。動的にロードするページに.Dybamically_input名前空間として何かを提供する!importantため、これを指定します。また、確実に追加したいプロパティを使用することもできます。

于 2012-07-10T11:17:09.437 に答える
0

CSSにスコープブロックを導入するための進化する標準がありますが、それはまだ十分にサポートされていないため、役に立ちません。!importantディレクティブを使用できますが、注意深く適用しないと、基になるドキュメントにも影響を与える可能性があります。

最善の解決策は、一意の名前のクラスを持つdiv内の追加バナーにすべてのHTMLを含めることでスコープを作成することです(一意の名前空間を使用して、一意性を保証しようとします。次に、そのクラスにのみスタイルを適用します、!importantを使用して、スタイルのカスケードの下位で変更される可能性のあるスタイルをオーバーライドする必要がある場合があります。

于 2012-07-10T11:17:44.340 に答える
-1

外部のcssファイルの代わりにインラインスタイル(スタイルを設定するすべてのバナー要素のスタイル属性)を使用します。これにより、競合が発生することはありません。

他の人が提案した他のオプションは、IFrameを使用することです。

于 2012-07-10T11:18:15.333 に答える