如何在ASP.NET菜单项上添加渐变背景?

时间:2009-01-07 18:55:27

标签: asp.net css relative-path menu absolute-path

老板希望母版页的菜单看起来更好。我使用网上可用的工具之一生成了我的渐变文件,没问题。

我尝试为每个菜单项创建一个CSS类,但是当我使用background-image指令和样式构建器时,我得到一行:

background-image: url('file:///C:/Documents and Settings/Username/My Documents/Visual Studio 2008/WebSites/ThisSite/Images/Gradient.png')

......当我想要

background-image: url('~/Images/Gradient.png')

当然,第一个网址只会在我在我的本地计算机上进行调试时才能正常工作 - 部署这个并且我已经被软管了。许多其他ASP.NET对象使用“〜/”来表示网站的顶级目录,但我的css文件不喜欢它,我无法为菜单控件或菜单​​项设置背景图像 - 当我可以对许多其他控件进行处理时,这似乎是一个明显的遗漏。

我错过了什么?

5 个答案:

答案 0 :(得分:4)

CSS中的url需要是绝对(或相对)url而不使用tilde映射,因为它不是服务器端组件。

    background-image: url(  "/images/menu.jpg" );

答案 1 :(得分:1)

你快到了......试试这个:

.menuStyle
{
  background-image: url('/images/BG.gif'); /* Putting a slash in front means its relative to the root.  No slash would be relative to the current directory. */
  background-repeat: repeat-x; /* assuming you have a vertical gradient. */
}

希望有所帮助。

答案 2 :(得分:0)

这不是一个明显的遗漏。根本不是遗漏。代字号是ASP构造。在你的CSS中它没有任何意义。

答案 3 :(得分:0)

一个“替换所有”操作,你已经设置好了。

file:/// C:/ Documents and Settings / Username / My Documents / Visual Studio 2008 / WebSites / ThisSite 替换为空白。

答案 4 :(得分:0)

我已经尝试在我的ASP.Net应用程序中设置CSS的background-image属性(即给出帖子中描述的相对路径)。但是,它对我不起作用。稍后,将背景图像设置为background-image:url('http://localhost:1701/Images/BannerTileBackground.gif');它确实有用..

请让我知道正确的方法是什么,以及之前没有用的原因。