如何从 CSS 中引用嵌入的图像?

Posted

技术标签:

【中文标题】如何从 CSS 中引用嵌入的图像?【英文标题】:How to reference embedded images from CSS? 【发布时间】:2010-11-14 20:50:18 【问题描述】:

我的程序集中嵌入了一个 CSS 文件。我需要使用这个 CSS 文件为某些元素设置背景图像,并且图像也需要是嵌入式资源。这可能吗?有什么方法可以可靠地做到这一点?

我在将现有样式表放入此 dll 时遇到了问题,然后我意识到图像没有显示出来。我不知道有什么方法可以让它工作,因为我需要知道嵌入图像的 URL。

有人做过这样的事吗?

【问题讨论】:

【参考方案1】:
<% = WebResource("image1.jpg") %>

您可以在 CSS 文件中使用上述语句,并在注册 CSS 时使用 WebResourceAttribute,可以设置“PerformSubstitution”为true

Default.css
body
    background: <%=WebResource("xyz.jpg")%>




[assembly, WebResource("Default.css","text/css", PerformSubstitution=true)]
[assembly, WebResource("xyz.jpg","image/jpg")]

【讨论】:

我发现当使用背景图像而不是背景时,我需要用 url('') 包装 WebResource 服务器标签。例如。背景图片:url('');【参考方案2】:

只需按照以下步骤将 Web 资源引用为 CSS 中的背景图像

    将图片 URL 引用为“背景:url('');”按照以下方式。

    Default.css
    body
          background: url('<%=WebResource("xyz.jpg")%>');
        
    

    在 AssemblyInfo.cs 文件中,按照以下方式注册具有“PerformSubstitution=true”属性的 CSS 文件

    [assembly, WebResource("Default.css","text/css", PerformSubstitution=true)]
    

    现在再次在 AssemblyInfo.cs 文件中将图像文件注册为

    [assembly, WebResource("xyz.jpg","image/jpg")]
    

    右键单击图像文件 (xyz.jpg) 和 CSS 文件 (Default.css),然后单击属性,现在选择“构建资源”选项作为“嵌入式资源”。

它完成了。 快乐编码!!!

【讨论】:

【参考方案3】:

我的建议与其他建议略有不同,但它适用于我的 ASP.NET 页面中的内联 CSS

    将以下条目添加到 AssemblyInfo.cs 文件 - [assembly: WebResource("MyImageFile.png", "image/png")] 在 CSS 中添加以下代码以引用嵌入资源 - background-image: url('&lt;%= Page.ClientScript.GetWebResourceUrl(typeof(MyUserControl), "MyImageFile.png") %&gt;')

【讨论】:

【参考方案4】:

如何通过 Web 服务公开资源? 比如在CSS文件中,设置background: url( getImage.aspx?image=newyork.jpg )?

【讨论】:

这是一个好主意,只是资源嵌入在我们的公共库中,而不是网络应用程序中。所以不幸的是,在这种情况下这对我不起作用。 然后,从一个新的Web应用程序中引用公共库,它只负责从公共库中提取嵌入式资源?

以上是关于如何从 CSS 中引用嵌入的图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有嵌入图像的 XHTML+CSS 转换为 XSL-FO?

如何从 XAML 引用嵌入式资源?

如何确保 HTML 电子邮件中嵌入的图像显示出来?

如何让 SVG 图像从 HTML 文档继承颜色?

winform 中如何引用js和css??

如何在 .NET HTML 邮件消息中嵌入图像?