1

我正在编写一个网络邮件产品,一些电子邮件的正文 CSS 会改变背景......所以当我 Html.Decode() 那个电子邮件正文时,它会改变整个页面的 CSS。

有没有好办法来解决这个问题?

4

3 回答 3

5

您可以使您的 CSS 比电子邮件的规则更具体。例如:

body.body.body或更具体body

body.body 中任何与上面较小示例中的样式冲突的样式都将被覆盖。但是要阻止样式合并在一起,您需要定义每个样式。

或者,您可以重写电子邮件中的 CSS,这是当今大多数 webmail/桌面电子邮件客户端的方式,一种或另一种方式。例如,如果您#emailMessage为所有规则添加前缀,并将电子邮件放在<div id="emailMessage"></div>标签内,则电子邮件中的所有样式将仅适用于该命名空间内。

使用 iframe 显示电子邮件只会引入更多基于可访问性等问题。祝你好运。

于 2009-07-15T10:40:53.567 回答
4

您的问题的答案可能是“iframe”,但在您的具体情况下,编写一个网络邮件客户端将向您介绍一个美妙的新地狱,称为“从各种客户端生成的可能极其无效的 html 中剥离 css,这些客户端都有他们对电子邮件中应允许使用哪种 html 的想法”。

祝你好运!

于 2009-07-15T10:05:09.303 回答
1

一种常见的方法是使用 iframe,尽管我不确定这是否适用于您的问题。

基本上它在另一个页面中加载不同的 html 页面。这使它独立,但这确实意味着您有 2 个页面来显示一封电子邮件。

http://www.w3schools.com/TAGS/tag_iframe.asp

于 2009-07-15T10:03:47.043 回答