< a href="#">サブメニュー 1
サブメニュー 2 >
セカンダリ メニュー レイヤーをメニュー レイヤーに配置する必要があるのはなぜですか?これにより、セカンダリ メニュー レイヤーの位置を簡単に設定できるためです。
4 番目のステップは、CSS を使用して 2 番目のメニュー レイヤーの位置を設定することです。一般に、CSS のposition 属性は、レイヤーの位置を設定するために使用されます。この属性の一般的な値には、相対、絶対、固定が含まれます。このうち、absolute は、このメソッドを使用してレイヤーの位置を設定する場合、レイヤーは 全体に基づいて配置されるため、ブラウザー ウィンドウのサイズが変更されると、レイヤーの位置も変わります。 「変更」は相対的な位置を意味し、この「相対的」とは、スクロール バーをどのようにドラッグしても、ブラウザ ウィンドウの上部から 10 ピクセル離れた位置にあると仮定します。レイヤーはブラウザ ウィンドウの上部から 10 ピクセル離れたところに表示されます。つまり、常にブラウザ ウィンドウに表示されます。 Relative は相対的な位置決めでもあります。この相対的な位置決めは、このレイヤーの元の位置に対して相対的なものになります。相対モードでは、ブラウザは最初にレイヤーの位置を出力し、次にこのレイヤーの位置を基準にしてオフセットします。これが、2 番目のメニュー レイヤーをメニュー レイヤーに配置する理由です。セカンダリ メニュー レイヤーが生成されると、以前の位置を基準にしてオフセットすることしかできないため、ブラウザ ウィンドウがどのように変化しても、レイヤーの位置には影響しません。セカンダリ メニュー レイヤーの位置が異なるため、以下に示すように、セカンダリ メニュー レイヤーごとに異なるオフセットを設定する必要があります。
メニュー 2 サブメニュー 1 上記のコードでは、 CSS の display はレイヤーを非表示にするように設定し、position はレイヤーを元の位置に対してオフセットするように設定し、left と top はオフセットを設定し、width はレイヤーの幅を設定します。もちろん、必要に応じて、フォント サイズなどの他のプロパティも設定できますが、詳しくは説明しません。ここで、第 2 レベルのメニュー層が第 1 レベルのメニューから離れすぎてはいけないことに注意してください。以前紹介したように、マウスが第 1 レベルのメニューから第 2 レベルのメニューに移動する場合、第 2 レベルのメニュー層を非表示にすることはできません。第 1 レベルのメニューが第 2 レベルのメニュー レイヤから遠すぎる場合、マウスを第 1 レベルのメニューから遠ざけただけで第 2 レベルのメニュー レイヤが非表示になり、第 2 レベルのメニューの目的が無効になります。メニュー。したがって、マウスが第 1 レベルのメニューから第 2 レベルのメニュー レイヤに移動するときに、第 2 レベルのメニュー レイヤが非表示になる時間がないことを確認する必要があります。これには 2 つのテクニックを使用する必要があります。この例に示すように、第 1 レベルと第 2 レベルのメニュー レイヤーは第 1 レベルのメニューから離れすぎてはなりません。マウスが第 1 レベルのメニューから第 2 レベルのメニューに移動します。第 2 メニューがオンの場合、第 2 メニューは非表示になる時間がありません。次に、第 1 レベルのメニューを
または
に配置します。これにより、マウスが または 上にある限り、第 2 レベルのメニュー レイヤーは非表示になりません。メニューと第 2 レベルのメニュー レイヤーはかなり離れているように見えますが、実際には第 2 レベルのメニュー レイヤーと第 1 レベルのメニュー レイヤーは非常に似ており、重複している部分さえある可能性があります。 2層。
5 番目のステップは、第 1 レベルのメニュー レイヤーと第 2 レベルのメニュー レイヤーの onmouseover 属性と onmouseout 属性を設定することです。これらは、第 2 レベルのメニュー レイヤーの表示と非表示を制御するために使用されます。主に、第 2 レベルのメニュー レイヤの表示属性値を設定します。ここではあまり紹介しません。完全なソースコードは次のとおりです。
ユニバーサル セカンダリ メニュー
メニュー 1