シンプルな水平 1 レベルのトップ メニューのシンプルなモバイル バージョンを作成しようとしています。水平上部のナビゲーションを、最初は非表示になっているが、ユーザーが画面の右上にあるシンプルなメニュー リンクをクリックすると表示される垂直メニューに置き換えたいと思います。
実際、ウィンドウを 768px 未満に絞ると、 http: //www.janparker.co.ukでこれまでに作成したものを見ることができます。
それはほとんど美しく単純な純粋な CSS の結果です。
メニューは完全に機能しますが、ユーザーが最初に「メニュー」をクリックしてメニューをアクティブにし、次にメニューを使用せずに、メニューの外側のページ上の他のリンクをクリックすると、問題が発生します。
外部リンクは機能しません。さらに悪いことに、メニューも閉じてページがスクロールするため (自然な動作であり、望ましくない動作ではありません)、ページをずっと下にスクロールすると、この組み合わせによってユーザーの方向感覚が完全に失われます。
コードは次のとおりです。
<a id="menu-invoker" tabindex="0">Menu</a>
<nav><ul><li>First menu item</li><li>second menu item</li></ul></nav>
<p><a href="http://www.google.com">Some other link</a></p>
#menu-invoker:focus ~ nav {display: block;}
nav {display:none;}
ul:focus, ul:active, ul:hover {display: block;}
またはフィドルを参照してください:http://jsfiddle.net/YNxVs/1/
解決策はありますか?これを達成する最も簡単な方法は何ですか? ジョナサン