html - 如何禁用一段 html 代码的基础或 Bootstrap 样式?

标签 html css ruby-on-rails html-email zurb-foundation

我正在使用 mailgun(尽管这个问题与 mailgun 无关)来解析传入的电子邮件,并且 mailgun 会将解析后的电子邮件 http 发布到我的服务器。 当我收到邮件时,我得到了多部分电子邮件的 html 代码。 我想向我的用户显示 html 电子邮件,我正在使用 rails,所以它类似于

<div>
  <%= raw(message.body_html) %>
</div>

但是,它看起来与我在 yahoo 或 hotmail 中查看同一封电子邮件时的情况不同(我知道不同的电子邮件客户端会以不同方式显示 html 电子邮件,但我的看起来截然不同)。

这是它在我的自建客户端上的样子: html email display in my self-built client

这是同一封电子邮件在 yahoo 中的显示方式: html email display in yahoo

我使用 Zurb Foundation 作为我的样式框架。但是,我认为电子邮件 html 带有自己的内联样式,我看它确实看起来像代码,那么它应该看起来与其他客户端足够相似。

假设您获得了一段 html 代码并希望按原样显示它而不让其他框架覆盖其样式,那么显示 html 电子邮件的最佳做法是什么?

此外,是否可以为一段代码禁用 Foundation(或 twitter bootstrap)样式,例如,

<div>
  <% disable_foundation_styling begin %>
    <%= raw(message.body_html) %>
  <% end %>
</div>

当然“disable_foundation_styling”只是我的想象。

提前致谢!

!!!!!!!!!! 2013 年 1 月 1 日更新 !!!!!!!!!!!!!!

正如@Alex L. 所建议的,我试过了,但它并没有像预期的那样安静地工作。 iframe 像以前一样在 View 中呈现所有内容(见下图),这是可以理解的,因为 iframe 内容只是另一个 Controller 的 View ,在这种情况下,rails 也将包含所有应用程序布局模板。然而,工具栏并不是我最关心的,它是 iframe 内的内容,看起来和以前一模一样。 enter image description here

我怀疑 iframe 可能不是这样做的方法。我看了一下gmail和yahoo的代码,都没有使用iframe。相反,他们使用非常深的嵌套来呈现 html 电子邮件。 html 电子邮件的部分对于 yahoo 和 gmail 具有相同的代码,只是 yahoo 为每个 DOM 元素插入了它自己的 id。

所以现在我怀疑有一些基础样式影响了它的外观。

一旦我发现更多,我会更新。

最佳答案

据我所知,不可能指示浏览器有选择地忽略 DOM 子集中的页面 CSS。您必须显式覆盖页面的现有样式。

但是,如果您有一个 iframe 元素,则该框架的内容将独立于应用于包含页面的任何样式呈现。因此,您可以创建一个单独的 Controller 和 View ,仅用于呈现消息的内容,并将其用作 iframe 的源。

关于html - 如何禁用一段 html 代码的基础或 Bootstrap 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108638/

相关文章:

java - 使用 Selenium 和 java 查找 href 链接

php - 选择多个将一个单词替换为数组中的每个值

php - 通过 PHP foreach 循环按钮将数据提交到 mysql 数据库的单行

ruby-on-rails - rails : Validate Unique Pairs

html - 响应式图像在 Chrome 中工作,但在 Firefox 中不起作用

CSS 不适用于 Localhost

html - 如何 float 和垂直排序元素?

javascript - react-native 图像不适用于 android

ruby-on-rails - Ruby on Rails - Git 分支工作流程

ruby-on-rails - 创建新记录时如何传递current_user?