ASP.NETメニュー項目にグラデーション背景をどのように配置しますか?
-
05-07-2019 - |
質問
上司は、マスターページのメニューの見栄えを良くしたいと考えています。ネット上で利用可能なツールの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');
に設定すると、機能しました。.
正しいアプローチとは何か、以前は機能しなかった理由を教えてください。