【问题标题】:ASP.NET MVC Inline Styling convertASP.NET MVC 内联样式转换
【发布时间】:2011-09-11 14:20:23
【问题描述】:

我是否可以将页面的所有样式(甚至某些链接的 css 文件中的样式)作为内联样式?

例如,我有我的 css 文件:

body {
    background-color: red;
    color: black;
}

还有这个 HTML:

<html>
    <head>
        <link href="styles.css" rel="stylesheet" type="text/css" />
    </head>
    <body>Hello World!</body>
</html>

所以我想得到:

<html>
    <head></head>
    <body style="background-color: red; color: black;">Hello World!</body>
</html>

如果我可以在 style 节点中获取所有样式,它也对我有用。

【问题讨论】:

  • 只使用jquery?你基本上可以像普通文件一样打开css文件并解析它。但我怀疑你可以只用 jquery 来做到这一点。至少您可能需要一些 Flash 或 Java 小程序。 javascripter.net/faq/reading2.htm
  • 你需要这个做什么,你的用例是什么?
  • 如果单独使用 jQuery 是不可能的,那么我想我必须按照你说的打开文件,我只是认为这是可能的。我需要这个,因为我正在使用这个 HTML 生成 PDF,它不理解链接文件中的样式,但它确实理解样式节点。
  • @melaos, @Pekka:对不起我之前问的问题,我用我真正需要的东西更新了我的问题。

标签: css asp.net-mvc-3 stylesheet styles inline-styles


【解决方案1】:

从您的 cmets 来看,您需要的是非常不同

您正在寻找的是一种工具,它可以使用自己的 CSS 样式抓取 HTML 页面并将其转换为内联样式

为此,有很多工具可以为您服务:

http://premailer.dialect.ca/

Google 中还有更多,这通常用于邮件作为电子邮件客户端应用程序不集成链接 CSS 而是内联 CSS。

【讨论】:

【解决方案2】:

如果您正在寻找 .NET 解决方案,您可能会对 PreMailer.NET 感兴趣。

https://github.com/milkshakesoftware/PreMailer.Net

PreMailer pm = new PreMailer();
string premailedOutput = pm.MoveCssInline(htmlSource, false);

【讨论】:

    【解决方案3】:

    旧帖子,但我终于(晚了 2 年!)在 github 和 nuget 上发表了这篇文章:

    https://github.com/lukeschafer/HtmlCleanser

    注意:Premailer.Net(由 Arical 建议)内联不正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-01
      • 2011-05-30
      • 2013-06-26
      • 2018-01-29
      • 2014-09-25
      • 2021-08-23
      • 1970-01-01
      • 2017-03-13
      相关资源
      最近更新 更多