- 締切済み
ドロップダウンメニューについて
JavascriptやJquoryを使わずにcssのみで、動きのあるドロップダウンメニューを作ることができました。 しかし、スマートフォンなどのタッチデバイスで動作確認をすると、メニューからサイドメニューが出っぱなしの状態になってしまい、引っ込んでくれません。 メニューの部分をクリックして開閉できるようにすればいいのでしょうか。やり方を教えて下さい。また、Javascriptを無効にしてる方でも問題なく使えるようにしたいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
ちょっと確認 ★header内のナビゲーションは:focus、section内のナビゲーションは:target ★Another HTML Lint - Gateway( http://www.htmllint.net/html-lint/htmllint.html# ) W3C CSS 検証サービス( http://jigsaw.w3.org/css-validator/#validate_by_input ) で検証済みのHTML5 + CSS3(targetのみ) ★タブは_に置換してあるので戻す。文字コードUTF-8 ★リキッド(640px~900px) <!doctype html> <html> <head> _<meta charset="utf-8"> _<title>サンプル</title> _<meta name="description" content=""> _<meta name="author" content="IRUKA"> _<style media="screen"> <!-- html,body{margin:0;padding:0;} h1,h2,h3,h4,h5,h6{margin:0;line-height:1.6em;} p{text-indent:1em;} header,section,footer{width:90%;min-width:630px;max-width:900px;margin:0 auto;padding:5px;} /* プルダウンメニュー */ nav{line-height:2em;text-align:center;} nav ul,nav ul li{list-style:none;margin:0;padding:0;} nav ul{font-size:0;} nav ul li{font-size:16px;display:inline-block;position:relative;width:25%;} nav ul li ul{font-size:16px;position:absolute;top:2em;width:100%;display:none;} nav ul li ul li{width:100%;} /* header内のナビ */ header nav ul li:hover ul,header nav ul li:focus ul{display:block;} /* 本文内のナビ */ section nav ul li ul:target{display:block;} /* 色分けなど */ nav ul li a{display:block;width:100%;height:100%;text-decoration:none;} nav ul li{background-color:yellow;} nav ul li:hover{background-color:orange;} nav ul li ul li:hover{background-color:lime;} body{background-color:gray;} header,section,footer{background-color:white;} --> _</style> </head> <body> _<header> __<h1>タイトル</h1> __<p>このページでは・・・・</p> __<nav> ___<ul> ____<li><a href="/">Top</a></li> ____<li><a href="/Books">Books</a> _____<ul> ______<li><a href="/Books/001.html">ABCD</a></li> ______<li><a href="/Books/002.html">EFGH</a></li> ______<li><a href="/Books/003.html">IJK</a></li> _____</ul> ____</li> ____<li><a href="/Product">Product</a> _____<ul> ______<li><a href="/Product/001.html">LMNO</a></li> ______<li><a href="/Product/002.html">PQRS</a></li> ______<li><a href="/Product/003.html">TUVW</a></li> _____</ul> ____</li> ____<li><a href="/Manual">Manual</a> _____<ul> ______<li><a href="/Manual/001.html">XYZA</a></li> ______<li><a href="/Manual/002.html">BCDE</a></li> ______<li><a href="/Manual/003.html">FGHI</a></li> _____</ul> ____</li> ___</ul> __</nav> _</header> _<section> __<h2>見出し</h2> __<p>本文はsection</p> __<section> ___<h3>項見出し</h3> ___<p>本文項記事</p> ___<p>sectionの階層でレベルが判断される</p> __</section> __<nav> ___<ul> ____<li><a href="/">Top</a></li> ____<li><a href="#Book">Book</a> _____<ul id="Book"> ______<li><a href="/Books/001.html">ABCD</a></li> ______<li><a href="/Books/002.html">EFGH</a></li> ______<li><a href="/Books/003.html">IJK</a></li> _____</ul> ____</li> ____<li><a href="#Products">Products</a> _____<ul id="Products"> ______<li><a href="/Product/001.html">LMNO</a></li> ______<li><a href="/Product/002.html">PQRS</a></li> ______<li><a href="/Product/003.html">TUVW</a></li> _____</ul> ____</li> ____<li><a href="#Manuales">マニュアル</a> _____<ul id="Manuales"> ______<li><a href="/Manual/001.html">XYZA</a></li> ______<li><a href="/Manual/002.html">BCDE</a></li> ______<li><a href="/Manual/003.html">FGHI</a></li> _____</ul> ____</li> ___</ul> __</nav> _</section> _<footer> __<h2>文書情報</h2> __<dl id="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2013-03-03</dd> __</dl> _</footer> </body> </html>
- ORUKA1951
- ベストアンサー率45% (5062/11036)
ところで、本当に出っぱなしになりますか??? スマホがユーザーエージェントの一つでしたら、HTML5でマークアップされていることが多いので <body> <header> ・・・ <nav> <ul> <li><a href=""></a></li> <li><a href=""></a> <ul> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=""></a></li> </ul> </li> とかだと思います。 それで、 スタイルシートは header nav ul li{position:relative;line-height:2em;} header nav ul li:honer ul{display:block;position:absolute;top:2em;width:100%;} header nav ul li ul li{width:100%;} header nav ul li ul{display:none;} などが定番の書き方ですが、:hoverが外れると、引っ込むはずですが、それともtransformやline-height使われているのかな・・
お礼
教えていただきありがとうございました。
補足
本当に出っぱなしになってしまいます。 確かに、cssのほうで:hoverを使っていました。 :hoverを外して書き換えて、マウスオーバーからクリックで動作するには上の書き方でよろしいですか?
- ORUKA1951
- ベストアンサー率45% (5062/11036)
:target擬似クラスを使いましょう。
お礼
教えていただきありがとうございました。
補足
わかりました。調べてみます。
補足
先ほど実践してみました。しかし、結局スマートフォンなどのタッチデバイスで動作確認すると出っぱなしの状態でした。