2009-01-07 53 views
2

老闆希望母版頁的菜單看起來更漂亮。我生成我的梯度文件與網上提供的工具之一,沒有問題。如何在ASP.NET菜單項上放置漸變背景?

我試圖爲每個菜單項做一個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文件不喜歡它,我不能爲菜單控件或菜單​​項設置背景圖像 - 當我可以將其用於許多其他控件時,看起來像是一個GLARING省略。

我錯過了什麼?

+0

我認爲你的問題標題並不能反映你真正想問什麼。你想知道的是如何阻止樣式生成器將絕對文件路徑放在url屬性上,不是嗎? – rodbv 2009-01-07 19:02:07

+0

這就是我被迫使用風格構建器的問題。最終結果(菜單項上的漸變背景)就是我所駕駛的。此時,如果由於它是母版頁的一部分,所以它在一個地方,我已準備好重寫菜單。 – David 2009-01-07 19:05:47

回答

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. */ 
} 

希望有所幫助。

4

您的CSS中的網址必須是絕對(或相對)網址,並且不使用代字號映射,因爲它不是服務器端組件。

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

這不是一個明顯的遺漏。根本不是遺漏。代字號是一個ASP構造。在你的CSS中,它沒有任何意義。

+0

我的意思是從ASP.NET菜單屬性列表中明顯遺漏。我幾乎可以設置其他任何東西,其他許多控件都具有「背景圖像」,但菜單沒有。這正是我想要彌補的。 – David 2009-01-07 19:07:12

0

一個「全部替換」操作,然後設置。

替換file:/// C:/ Documents and Settings/Username/My Documents/Visual Studio 2008/WebSites/ThisSite with blank。

0

我曾嘗試在我的ASP.Net應用程序中設置CSS中的background-image屬性(即給出相應的路徑,如後文所述)。但是,它並不適合我。後來,將背景圖像設置爲background-image:url('http://localhost:1701/Images/BannerTileBackground.gif');它確實工作..

請讓我知道什麼是正確的方法,以及它之前沒有工作的原因。