このメニュー(http://thepiratehenk.nl/pgwe/)の問題は、サブメニューを右に移動すると表示されなくなることです。
(Internet Explorerでも機能しません。これは、次に修正する問題です。)
このメニュー(http://thepiratehenk.nl/pgwe/)の問題は、サブメニューを右に移動すると表示されなくなることです。
(Internet Explorerでも機能しません。これは、次に修正する問題です。)
次のCSSルールを追加します。
.navi nav > ul > li:hover {
z-index: 2;
}
これにより、現在のメニュー項目とそのサブメニューが常に他のメニュー項目の上に表示されます。
2つの主要な問題
第1号
問題#1は、にがあり、その中のタグに回転を実行することによって発生し:hover
ます(同じ要素にとの回転がないli
)。これは、次の2つの方法のいずれかで対処できます。a
:hover
1a。現在のメニュー項目(マウスが上にある)に、他のどのメニュー項目よりも大きなz-index値を一時的に与えます。これは、を使用してCSSのみで実行できる場合がありますli:hover
。
1b。li
タグではなくメニューを回転してから、その中a
のサブメニューul
タグの回転を解除します(:hover
と回転が同じ要素上にあるようにします)。
第2号
各メニュー項目の下隅は、前のメニュー項目のサブメニューの上にあります。サブメニューは常にすべてのメニュー項目の上にある必要があります。
上記の1aソリューションは、問題#2も修正する可能性があります(メニューのz-indexをでli
大きく設定z-index
し:hover
ます。
マイナーな問題
上記のコメントと@blackhawkで言及されている別の問題は、タグ.naarlinks
div
内に直接ネストされていることです。ul
これは実際には上記の問題とは無関係であるように見えますが、それでもそのままにしておくのは安全ではありません。一部のブラウザで奇妙な動作を引き起こすリスクは別として、HTMLの検証も妨げられます。
はしか.naarlinks
div
持っていないようpadding-left: 100px;
です。が不適切にネストされているため、そのスタイルが有効になっているかどうかはわかりませんが、そのスタイルが必要な場合は、何らかの方法でdiv
サブメニューに追加してみてください。ul
まず、.naarlinks
div
sを削除して、それがページにどのように影響するかを確認することをお勧めします。ul
次に、サブメニュータグにスタイルを追加して修正する必要があるかどうかを確認します。
を削除した後div
、サブメニューのパディングをul
次のように変更してみてください。
.navi nav li ul {
padding: 3px 10px 3px 110px;
}
順序付けされていないリスト内の最初の子としてdiv要素を持つことはできません。それがあなたのページが壊れている理由です。
順序付けされていないリストの基本構造は、通常、次のようになります...
<ul>
<li></li>
<li></li>
</ul>
このようではありません...
<ul>
<div>
<li></li>
<li></li>
</div>
</ul>
しかし、あなたの質問に答えるために-あなたはあなたのCSSに1つの小さなものが欠けています...
.navi nav li ul:hover {display:block}