HTMLで簡単なメニューを作りました。それは(ほぼ)完全に機能します。メニュー項目は、ご覧のとおり、CSS で設定された背景画像へのリンクです。マウスオーバーすると、別の背景画像が表示されます。
私の問題は、メニュー項目を常に「選択」するための有効な解決策が見つからないことです。つまり、メニューに実際のページを表示したくないということです。
まず、HTML と CSS を示します。その後、私がやろうとしたことを示します。
<div id="menu">
<a href="@Url.Action("Index","Produkter")" id="menu_produkter"></a>
<a href="@Url.Action("Index", "Galleri")" id="menu_galleri"></a>
<a href="@Url.Action("Index", "Kontakt")" id="menu_kontakt"></a>
</div>
CSS は次のようになります。
#menu_produkter
{
display: block;
position: absolute;
background: url(images/menu_produkter.png) no-repeat;
width: 108px;
height: 26px;
margin-left: 376px;
margin-top: 52px;
}
#menu_produkter:hover {
background: url(images/menu_produkter_hover.png) no-repeat;
cursor: pointer;
}
#menu_galleri {
display: block;
position: absolute;
background: url(images/menu_galleri.png) no-repeat;
width: 64px;
height: 26px;
margin-left: 496px;
margin-top: 52px;
}
#menu_galleri:hover {
background: url(images/menu_galleri_hover.png) no-repeat;
cursor: pointer;
}
#menu_kontakt {
display: block;
position: absolute;
background: url(images/menu_kontakt.png) no-repeat;
width: 85px;
height: 26px;
margin-left: 572px;
margin-top: 52px;
}
#menu_kontakt:hover {
background: url(images/menu_kontakt_hover.png) no-repeat;
cursor: pointer;
}
「:hover」ID と同じ背景画像を使用して、#menu_xxxx_on という各項目に CSS ID を追加しようとしました。
次に、ビューの上部に ViewBag.CurrentPage = "xxxx" を設定します。最後に、Razor を使用して現在のページを確認します。
$<a href="@Url.Action("Index", "Produkter")" id="menu_produkter@{if(ViewBag.CurrentPage.Equals("Salonen")) {<text>_on</text>}}"></a>*
うまくいくことを願っていましたが、代わりにメニュー項目が完全に消えてしまいました。Google Chromeで「要素を検査」して、何が問題なのかを調べようとしました。すべての CSS プロパティをリセットするようです。
これに対する簡単な解決策はありますか?それとも別の方法で行う必要がありますか? カスタムhtmlヘルパーを使用した他のソリューションを見てきましたが、この方法で実行できるとしたら、少しやり過ぎだと思います。
前もって感謝します。