Лучший способ отобразить веб-страницу внутри веб-страницы? - PullRequest
1 голос
/ 15 июля 2009

Я пишу продукт для веб-почты, и в некоторых электронных письмах есть тело css, которое меняет фон ... поэтому, когда я использую Html.Decode () для этого электронного письма, это изменяет CSS всей страницы.

Есть ли хороший способ решить эту проблему?

Ответы [ 3 ]

5 голосов
/ 15 июля 2009

Вы можете сделать свой CSS более конкретным, чем правила электронной почты. Например:

body.body более конкретно, чем .body или body

Любые стили в body.body, которые конфликтуют со стилями в меньших примерах выше, будут переопределены. Но чтобы остановить объединение стилей, вам нужно определить каждый отдельный стиль.

В качестве альтернативы, вы можете переписать CSS в электронных письмах, что является способом, которым большинство почтовых клиентов в Интернете / настольных компьютерах пользуются в наши дни, так или иначе. Если вы добавите, например, все правила к #emailMessage и поместите письмо внутри тега <div id="emailMessage"></div>, все стили в письме будут применяться только внутри этого пространства имен.

Использование iframe для отображения электронной почты только создает дополнительные проблемы, связанные с доступностью и т. Д. И т. Д. Удачи.

4 голосов
/ 15 июля 2009

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

Удачи!

1 голос
/ 15 июля 2009

Распространенным способом является использование iframe, хотя я не уверен, что это применимо к вашей проблеме.

В основном он загружает другую HTML-страницу внутри другой страницы. Это делает его независимым, но это означает, что у вас есть 2 страницы для отображения одного электронного письма.

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

...