Как отключить стиль foundation или bootstrap для блока html-кода?


Я использую mailgun (хотя этот вопрос не имеет ничего общего с mailgun) для анализа входящей электронной почты, и mailgun будет отправлять обработанную электронную почту на мой сервер. Когда я получил сообщение,я получил html-код для многокомпонентного письма. Я хочу отобразить html-письмо для моего пользователя, я использую rails, так что это что-то вроде

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

Однако он выглядит иначе, чем когда я просматриваю одно и то же письмо в yahoo или hotmail (я знаю, что другой почтовый клиент будет отображать html-письмо по-разному, но мой выглядит совершенно по-другому).

Вот как это выглядит на моем самостоятельном клиенте: отображения HTML электронной почты в моей собственной причине клиента

И вот как это выглядит в yahoo для той же электронной почты: html-дисплей электронной почты в yahoo

Я использую Zurb Foundation в качестве основы для стиля. Тем не менее, я думаю, что html-код электронной почты поставляется со своим собственным встроенным стилем, я смотрю на код, который выглядит так, как он выглядит, тогда он должен выглядеть достаточно похожим с другими клиентами.

Итак, как лучше всего отображать html-письмо, если вы получаете блок html-кода и хотите отобразить его как есть, не позволяя другим фреймворкам перезаписывать его стиль?

Далее, можно ли отключить стиль Foundation (или Twitter bootstrap, если на то пошло) для блока кода, например, что-то вроде

<div>
  <% disable_foundation_styling begin %>
    <%= raw(message.body_html) %>
  <% end %>
</div>
Конечно, "disable_foundation_styling" - это только мое воображение.

Заранее спасибо!

!!!!!!!!! Обновление 1/1/2013 !!!!!!!!!!!!!!!

Как предложил @Alex L., Я пытался, но это не работает тихо, как ожидаемый. Iframe отображает все в представлении, как и раньше (см. рисунок ниже), и это понятно, так как содержимое iframe-это просто представление другого контроллера, который в случае rails также будет включать все шаблоны макета приложения. Однако панель инструментов-это не моя самая большая проблема, это то, что внутри iframe выглядит точно так же, как и раньше. Введите описание изображения здесь

Я подозреваю, что iframe не может быть способом сделать это. Я смотрю на код как gmail, так и yahoo, и они не используют фрейм. Вместо этого они используют очень глубокие вложенные для отображения HTML-сообщения электронной почты. Часть html-письма имеет одинаковый код как для yahoo, так и для gmail, за исключением того, что yahoo вставляет свой собственный идентификатор для каждого отдельного элемента DOM.

Так что теперь я подозреваю, что есть некоторый стиль фундамента, который повлиял на то, как он выглядит.

Я обновлю, как только узнаю больше.

1 8

1 ответ:

Насколько мне известно, невозможно поручить браузеру выборочно игнорировать CSS вашей страницы в подмножестве DOM. Необходимо явно переопределить существующий стиль страницы.

Однако, если у вас есть элемент iframe, содержимое этого фрейма будет отображаться независимо от любых стилей, применяемых к содержащей странице. Таким образом, вы можете создать отдельный контроллер и представление только для отображения содержимого вашего сообщения, и использовать его в качестве источника для iframe.