2009-05-29 9 views
3

私は、クライアントのサイトに電子メールニュースレターのアーカイブを表示する方法を見つけようとしています。問題は、ニュースレターが数百のインラインスタイルでいっぱいであることです。これは、Outlookやどこででも見ることができますが、それ以外のスタイルのサイトでは熱く見えません。重いスタイルのHTMLを他のサイトのスタイルと区別して表示する方法はありますか?

私の目標は、生成されたニュースレター(彼女のリスト管理会社*が彼女のアクセス権を与える)のソースコード全体をコピーし、それをCMSに貼り付けることです(違いがあればdrupal) 。

*一定の連絡先?メールチンパンジー?私は忘れる。それらの一つ。

それから私は、サイトの残りの部分の基本構造(ヘッダー、ナビゲーションなど)の内側に、彼女のサイトに表示したいと思います。これが1997年だったら、 "iframe!"そしてそれで済ませることができますが、A)は不自由な解決策のように思えますし、B)コードは実際にはiframeに必要と思われるページ上に実際には存在しません。

私は、サイトのスタイルの残りの部分から隔離するためにHTMLのこのブロックの周りに置くことができ、タグのいくつかの種類がありますか?あるいは、これについて完全に行く別の方法がありますか?

ありがとうございます!

+1

あなたはこのクレイジーなHTMLの例を示していることはできますか? – Keltex

+0

1997年、iFramesはInternet Explorerのみで、IEのシェアは20%未満でした。 :-) – Nosredna

答えて

0

モーダルを使用できない理由はありますか?そうすれば、新しいリクエストを強制し、一般的なスタイルシートを適用しないで希望のページにユーザーを保つことで、ページの表示方法をレンダリングすることができます。もちろん、それはいわば、インラインで要素を表示しませんが、ほぼ機能的に同等です。

+0

この場合、クライアント*は具体的にはコンテンツがインラインで表示されることを望んでいます - 最新のニュースレターを表示するためにクリックしなければならなかったページを置き換えています。 – Eileen

+0

その場合は、iFramesまたはバストです。 –

3

私がこれまでに見つけたことがあるのは、IFrameだけです。これに代わる唯一の方法は、ニュースレターの表示領域用の親ページのCSSのすべてのスタイルをオーバーライドすることです。

あなたが述べたように、インラインフレームを使用して、おそらく独立したファイルにニュースレターをホストするためにあなたを必要とします。私が知っているこれに代わる唯一の方法は、JavaScriptを使用してiframeを動的に作成および/または作成することができることです。

あなたがこの方法で行く場合は、特定のクラスを持つdivの中にニュースレターの存在を持っているし、その後はiframeにdiv要素を移動するためにJavaScriptを使用することができます。大きな欠点は、JavaScriptが有効になっていないユーザーにはこれが起こらないことです。

1

生のHTMLをカットアンドペーストするとセキュリティ上の問題が多すぎます。ユーザーの入力を信頼しないでください。コンテンツが完全に良心的であっても、来週はニュースレターのデザイナーが書式を変更したり、JavaScriptを組み込んだりすることがあります。

したがって、私は、コンテンツ部分だけを削除し、b、a、h *、blockquoteなどのシンプルな要素(フォーラムの投稿に許可されている要素やスタイルなど)を残すパーサーを実装します。その後、通常の投稿としてCMSに表示することができます。私はそれが異なって見えるべき理由を見ない。あなたのCMSのCSSルールのすべてが特定のクラスを持つ要素に適用されることに注意している場合は、あなたの他のCSSから、あなたが本当にする必要がないことを隔離する方法については

。また、投稿のためのCSSのリセットを行います。

.post p { 
    margin: 0; 
    ... 
.post /* all the standard CSS reset rules preceded with .post */ 

、その後

<div class="post"> content parsed from your CMS </div> 
関連する問題