.NET将外部CSS转换为内联CSS

10
我在寻找一款能将外部CSS转换成内联CSS的工具。生成的HTML将用于电子邮件和PDF创建。

必须使用.NET吗?外部工具不行吗? - Pekka
请查看一些关于此问题的现有问题:http://stackoverflow.com/questions/791070/what-tools-to-automatically-inline-css-style-to-create-email-html-code - wsanville
应该使用.NET编写,这样我就可以在我的C#代码中调用该dll。 - brechtvhb
使用HtmlAgilityPack和Fizzler解决的问题,我上传了一个带有示例和所需DLL的压缩文件[HtmlCssMergeExample.rar](http://www.elime.be/downloads/HtmlCssMergeExample.rar)。 文件example.txt包含如何调用我的代码的示例。 - brechtvhb
2个回答

12

Premailer.Net可以胜任此任务,它是用C#编写的

Premailer.Net是一个C# .Net库,可将您的样式表移动到内联样式属性中,以最大程度地兼容电子邮件客户端。

这是Git仓库链接: https://github.com/milkshakesoftware/PreMailer.Net:


Premailer 确实是当今的首选。 - brechtvhb

0
使用.NET Core,我通过定义以下函数来解决这个问题:
public static string InlineFile(string path)
{
    return System.IO.File.ReadAllText("wwwroot/" + path);
}

然后在视图中调用它

<style>
    @Html.Raw(Utilities.InlineFile("account/css/style.css"));
</style>

单独定义函数的原因是为了避免在托管环境更改时更改所有路径。请注意,您无法内联媒体规则。


5
这样做可以将你的CSS放在与HTML相同的文件中,但不是内联CSS。内联CSS位于HTML元素的style属性中。 - brechtvhb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接