2010-11-24 22 views
1

ランダムなWebサイトの固定divとしてポップアップを表示しています。継承されたCSSの影響を受けないdiv要素内の要素の書式設定

div内の要素にはインラインCSSがあり、インラインCSSだけを継承してCSSを継承しないようにします。

これを行うには、iframeを使用する方法があります。私は他の方法を探しています。

オプション私が検討している:すべての要素上で実行され、継承されたCSSをリセットします

  1. 小さなJavaScriptコード。 可能ですか?インラインCSSで属性が作成されていないことをクロスブラウザに伝えることはできますか?

  2. のdiv内のすべての要素に属性のグループをリセットするJavascriptコード(たとえば、すべてのパディング、マージンなどが、それでもスタイルはインラインCSSから属性を残して?

他の独創的なアイデアにこれを行うにはどのように?divの内側

答えて

1

要素をインライン CSSを持っている、と私は にのみ、インラインCSSが有効としたい、CSS

01を継承していません

これがデフォルトの動作です。インラインCSSの優先順位が最も高くなります。

AFAIKこれらをオーバーライドしない限り、継承されたスタイルを削除することはできません。

+0

はい、しかし私が設定しなかった属性は継承された値を取得します(避けたい) – Nir

0

もう一つの選択肢(実用的なものがあなたのサイトに依存するかどうか)は、クラスに適用できるような "resetCSS"などのクラスを持つことです。このクラスはセレクタで使用します。ここでは、使用するすべての属性(マージン、フォントなど)の基本値を設定できます。

このクラスを要素に適用すると、everythignがデフォルト値にリセットされ、CSSでオーバーライドできます。

もう1つの選択肢は、セレクタに「スタイル付きコンテンツ」クラスを持つように現在のCSSをすべて変更して、特にマークアップされたコンテンツのみがスタイリングを受け取り、あなたはそれを望んでいない要素。

おそらくdivを特定のスタイルにしたいのであれば、それがデフォルトであっても実際にそのスタイルを明示的に指定するのが最善です。とにかくデフォルトを使用していた場合は、何も失いません。それが他のものを継承していたら、それをあなたが望むものに設定しています。既定のスタイルに依存すると、2つのブラウザーの既定スタイルが同じになる必要がないため、あなたを噛んでしまう可能性があります。