我正在编写一个webmail产品,一些电子邮件的主体css会改变背景......所以当我在Html.Decode()那个电子邮件主体时,它正在改变整个页面的CSS。
有没有一种好方法可以解决这个问题?
答案 0 :(得分:5)
您可以使CSS比电子邮件规则更具体。例如:
body.body
比.body
或body
body.body中与上述较小示例冲突的任何样式都将覆盖。但要停止合并的样式,您需要定义每种样式。
或者,您可以在电子邮件中重写CSS,这是目前大多数网络邮件/桌面电子邮件客户端的方式,不管怎样。例如,如果您使用#emailMessage
为所有规则添加前缀,并将电子邮件放在<div id="emailMessage"></div>
标记内,则电子邮件中的所有样式都只会应用于该命名空间内。
使用iframe显示电子邮件只会引入更多基于可访问性等问题。祝你好运。
答案 1 :(得分:4)
问题的答案可能是“iframe”,但在您的具体情况下,编写一个网络邮件客户端会向您介绍一个名为“从可能极其无效的HTML中剥离css”的精彩新地狱由各种各样的客户生成,他们对电子邮件中允许的html类型都有自己的想法“。
祝你好运!答案 2 :(得分:1)
一种常见的方法是使用iframe,但我不确定这是否适用于您的问题。
基本上它会在另一个页面中加载不同的html页面。这使它独立,但它确实意味着您有2页显示一封电子邮件。