2

上司は、マスター ページのメニューの見栄えを良くしたいと考えています。ネットで入手できるツールの 1 つを使用してグラデーション ファイルを生成しましたが、問題はありません。

メニュー項目ごとに 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')

もちろん、最初の URL は、ローカル マシンでデバッグしているときにのみ機能します。これをデプロイすると、うんざりします。他の多くの ASP.NET オブジェクトは "~/" を使用して Web サイトの最上位ディレクトリを示しますが、私の css ファイルはそれが気に入らず、メニュー コントロールまたはメニュー項目の背景画像を設定できません -他の非常に多くのコントロールにそれを行うことができるとき、明らかな省略のように思えます。

私は何が欠けていますか?

4

5 に答える 5

4

CSS の URL は絶対 (または相対) URL である必要があり、チルダ マッピングはサーバー側のコンポーネントではないため使用しないでください。

    background-image: url(  "/images/menu.jpg" );
于 2009-01-07T18:58:54.867 に答える
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. */
}

それが役立つことを願っています。

于 2009-01-07T19:19:15.513 に答える
0

1 回の「すべて置換」操作で設定完了です。

file:///C:/Documents and Settings/Username/My Documents/Visual Studio 2008/WebSites/ThisSiteを空白に置き換えます。

于 2009-01-07T19:15:47.657 に答える
0

ASP.Net アプリケーションで CSS から background-image プロパティを設定しようとしました (つまり、投稿で説明されているように相対パスを指定します)。しかし、それは私にはうまくいきませんでした。後で、background-image:url('http://localhost:1701/Images/BannerTileBackground.gif');それが機能したように背景画像を設定します..

正しいアプローチと、以前は機能しなかった理由を教えてください。

于 2010-07-13T21:32:07.933 に答える
0

明らかな省略ではありません。まったく手抜きではありません。チルダは ASP 構造です。CSS では意味がありません。

于 2009-01-07T19:04:35.713 に答える