まったく変更されない可能性のある外部スタイルシート(.cssファイル)が提供されました。ただし、このスタイルシートを単一のdivに適用する必要があるため、既存のWebページのdivのコンテンツを適用します。現在、スタイルシートのコンテンツを、影響するdiv内の空白のスタイルタグ(.innerHTMLを使用)にテキストとして読み込んでいますが、これは、単一のdivではなく、Webページ全体に影響します。誰かがこれを手伝ってくれませんか?
IFRAMEソリューションは次のように機能します。
メインのHTMLファイルには、DIVがあります。
<div id="myspecialdiv">
<iframe width="100%" height="100%" frameborder="0" src="divcontent.html"></iframe>
</div>
必要に応じてスタイルを整えます。 divcontent.htmlファイルは、DIVタグのコンテンツを含む完全なHTMLファイルと、外部スタイルシートを使用するLINKである必要があります。
<html>
<head>
<link rel="stylesheet" href="path/to/external/stylesheet.css" />
</head>
<body>
<!-- The contents of your DIV -->
</body>
</html>
HTML5で作業できる場合は、 scoped styles を使用してみてください。 CSSをdiv内に含めて、親にのみ影響を与えることができます。
<div>
<style scoped>
// Styles here
</style>
</div>
これは非常に役立ちます:
http://css-tricks.com/saving-the-day-with-scoped-css/
特定の区切られたescopeにスタイルのみを適用します。幸運を!
IMHOはiframeソリューションよりも優れています。
サーバーサイドスクリプティング(PHPなど)にアクセスできる場合は、外部スタイルシートを読み込み、すべてのエントリの前にクラス名を追加するスクリプトを作成できます。次に、このクラスをDIVタグに適用します。したがって、CSSに以下が含まれている場合:
p { font-size: 12px; }
これを次のように変更します。
.mydiv p { font-size: 12px; }
そしてDIVを次のようにフォーマットします
<div class="mydiv">...</div>
次に、スクリプトを外部のスタイルシートではなく、スタイルシートとして直接ロードします。
<link rel="stylesheet" href="path/to/internal/script.php" />
外部スタイルシートをそのままにして、外部スタイルシートから単一のdivに影響を与えたいクラスの内部スタイルシートを作成し、名前を変更して、名前を変更したクラスをdivに適用することをお勧めします。名前の変更は、これらのクラスの属性が外部スタイルシートからページにすでに存在する要素に影響を与える可能性があるためです。
<style>
.xxx {...} /* The renamed class from this internal css that should apply to your div */
</style>
お役に立てれば。
scoped
は良い考えですが、ブラウザ互換性の問題があります。
私はこの問題をCSSファイルのすべてのセレクタの前にプレクラスを追加することで解決します:
外部ファイル内のスタイル仕様はクラスやIDに含まれていないと思いますが、それらは<p>
などのタグに対する包括的な調整です(したがって、ページヘッダーに含めることはできません)。 divを<style scoped>
タグに含め、そこに.cssファイルをインポートします。参照: http://css-tricks.com/saving-the-day-with-scoped-css/
CSSプレフィックスを割り当てて、スタイルを設定するドキュメントのセクションをターゲットにすることができます。