質問

上司は、マスターページのメニューの見栄えを良くしたいと考えています。ネット上で利用可能なツールの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オブジェクトは"〜/"で動作します。ウェブサイトのトップレベルのディレクトリを示しますが、私のcssファイルはそれを気に入らず、メニューコントロールやメニューアイテムの背景画像を設定できません。その他のコントロール。

不足しているものは何ですか?

役に立ちましたか?

解決

もうすぐそこにいます...これを試してください:

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

役立つこと。

他のヒント

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

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

明白な省略ではありません。まったく漏れない。チルダはASPコンストラクトです。 CSSでは意味がありません。

1つの「すべてを置き換える」」操作と設定されています。

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top