【问题标题】:Transform CSS to style elements with Razor使用 Razor 将 CSS 转换为样式元素
【发布时间】:2013-10-17 16:31:01
【问题描述】:

鉴于 GMail 的 questionable support for CSS,我想将 style 元素应用于我正在组装的 HTML 电子邮件中的所有内容。

我目前正在使用 MVC3 的 Razor 构建电子邮件,然后发送生成的 HTML。有什么方法可以让我用样式表编写模板,然后对其进行转换,使每个元素都获得具有适当样式的style 属性?


例如,在一个普通的网页中,我会有类似

<style>
    a { color:#1c5567; }
</style>
<a href="...">Click here!</a>

如果 GMail 用户看到这个,他们不会看到它是蓝绿色的。但是,如果我这样做

<a href="..." style:"color:#1c5567">Click here!</a>

他们会的。但这是一个巨大的可维护性头痛。因此,我想要一个可以采用前一种样式的 HTML 并以后一种样式输出的进程。

。为此,我想采用现有的 CSS 样式并对其进行转换,以便将 style="color:#1c5567;" 添加到页面上的每个 &lt;a&gt; 中。

【问题讨论】:

  • 请详细说明。不清楚你在问什么。看起来您已经回答了这个问题,只需使用 css a { color:#1c5567; }
  • @Accelerator - 如果我这样做,GMail 会删除它。我需要把它应用到页面上的每个&lt;a&gt;,这样每个都有&lt;a style="color:#1c5567;" href="..."&gt;
  • 哦,我明白你要做什么了。我知道你的问题。您需要使用!important 来覆盖样式。看我的回答。

标签: css asp.net-mvc-3 razor


【解决方案1】:

这可能是最蹩脚的方法,但您可以使用像 CSS Parser 这样的简单 CSS 解析器并根据需要添加样式属性。

【讨论】:

    【解决方案2】:

    由于您要从外部样式表覆盖 gmail 中的样式,因此您需要使用 !important 来覆盖样式。

    a { 
      color:#1c5567 !important; 
    }
    

    【讨论】:

    • 根据我的发现,GMail 将删除任何使用 CSS 的尝试,无论是包含在 &lt;style&gt; 标签中还是外部链接。这就是为什么我想内联它。不过,我可能会被误导?
    • 不,不会的。您可以使用!important,它会起作用。相信我,我已经做到了。试试看,当它起作用时,请随时接受我的回答。
    • 很高兴知道。我去试一试。
    猜你喜欢
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2021-01-14
    • 2021-05-11
    • 2020-02-09
    • 1970-01-01
    • 2012-12-29
    • 2011-07-27
    相关资源
    最近更新 更多