如何从 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('<%= Page.ClientScript.GetWebResourceUrl(typeof(MyUserControl), "MyImageFile.png") %>')
【讨论】:
【参考方案4】:如何通过 Web 服务公开资源?
比如在CSS文件中,设置background: url( getImage.aspx?image=newyork.jpg )
?
【讨论】:
这是一个好主意,只是资源嵌入在我们的公共库中,而不是网络应用程序中。所以不幸的是,在这种情况下这对我不起作用。 然后,从一个新的Web应用程序中引用公共库,它只负责从公共库中提取嵌入式资源?以上是关于如何从 CSS 中引用嵌入的图像?的主要内容,如果未能解决你的问题,请参考以下文章