- 締切済み
CSS ドロップダウンメニュー ページごとに固定
こんんちは。 cssでホームページ作成中なのですが、独習では解決できない点があり ご教授いただけたら幸いです! 下記サイトのテンプレートをもとに、カーソルを合わせるとドロップダウンで 階層メニューが表示されるサイドメニューをつくりました。 http://www.webdlab.com/template/dropdownmenu2/ カーソルオンで反転+階層メニューの表示はクリアできたのですが。。 各ページを開いたときに、現在表示されているページにあたる箇所は、 カーソルが離れても文字を反転させたまま、またその階層メニューも常に表示の状態にしたいのです。 テンプレートCSSにうまく加筆できればと思ったのですが、うまくいきません。 何か方法はないでしょうか。 どうぞよろしくお願いします!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ORUKA1951
- ベストアンサー率45% (5062/11036)
リンク先のHTMLもCSSもあまりに酷いので・・ javascriptで、カレントディレクトリ、カレントファイルを取得してHTMLを書き直します。 カレントディレクトリにはclass名をcurentDir,ファイルにはcurentFileを追加します。 ウェブ標準でのHTMLとCSS・・どちらもとってもシンプルです。--ウェブ標準ですから当然ですが・・ ★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) ★The W3C Markup Validation Service ( http://validator.w3.org/#validate_by_input ) ★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_input ) で検証済み。 下記ソースは、タブインデントを__に置換してアルルので戻して。 CSSは、下記を参考に「ウェブ標準なのでCSSもわかりやすいはず」 カスケーディングスタイルシートですから、カスケーディング機能を使うべきです。 一切無駄なclass名やidは使われていませんからHTMLもCSSも簡単でメンテナンスも容易 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> __<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> __<title>サンプル</title> __<meta name="author" content="ORUKA1951"> __<meta http-equiv="Content-Style-Type" content="text/css"> __<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > __<link rel="START" href="../index.html"> __<style type="text/css"> <!-- /* div.header内のdiv.nav内のol,liについて */ div.header div.nav ol, div.header div.nav li{ __display:block;list-style:none; __padding:0;margin:0; __line-height:30px; } /* 枠線をつける */ div.header div.nav li{ __border:solid 1px blue; } div.header div.nav ol{ __width:200px; } /* 下位のliは枠線を消す */ div.header div.nav ol li ol li{ __border:none; } div.header div.nav li a{ __display:block;margin:0; __background-color:white; __padding-left:0.5em; __text-decoration:none; /* 子孫セレクタで下位のliを消す */ /* 詳細度[25] div.header div.nav ol li ol{ __width:178px; __display:none; __margin-left:20px; } /* liにhoverするとdisplayを変える */ /* 詳細度[35]が高いので優先 */ div.header div.nav ol li:hover ol, div.header div.nav ol li.curentDir ol{ __display:block; } }/* おまけ */ div.header div.nav li.curentFile a{color:red;} div.header div.nav li.curentFile a:after{content:" (現在地)";} div.header div.nav li a:visited{background-color:gray;} div.header div.nav li a:hover, div.header div.nav li a:focus{background-color:green;} div.header div.nav li a:active{background-color:lime;} div.header div.nav li a:visited:after{content:" (済み)";} --> __</style> </head> <body> __<div class="header"> ____<h1>サンプル</h1> ____<div class="nav"> ______<ol> ________<li><a href="./abc/index.html">あいうえお</a> __________<ol> ____________<li><a href="./abc/efg.html">かきくけこ</a></li> ____________<li><a href="./abc/hij_2.html">さしすせそ</a></li> ____________<li><a href="./abc/klmn.html">たちつてと</a></li> __________</ol> ________</li> ________<li class="curentDir"><a href="./efg/index.html">なにぬねの</a> __________<ol> ____________<li><a href="./efg/abc.html">はひふへほ</a></li> ____________<li class="curentFile"><a href="./efg/efg.html">まみむめも</a></li> __________</ol> ________</li> ________<li><a href="./hij/index.html">やゆよ</a> __________<ol> ____________<li><a href="./hij/abc.html">らりるれろ</a></li> ____________<li><a href="./hij/efg.html">わゐうゑを</a></li> __________</ol> ________</li> ______</ol> ____</div> __</div> </body> </html>
- ORUKA1951
- ベストアンサー率45% (5062/11036)
各ページで開かれているリストは異なるものですから、まったく同じソースでは無理です。 javascriptだとカレントを取得してHTMLを書き直すことになります。 CSSなら、各リストを変えておきます。 <ol> __<li><a href=""></a> ____<ol> ______<li><a href=""></a></li> ______<li><a href=""></a></li> ______<li><a href=""></a></li> ____</ol></li> __</li> __<li class="curentDir"><a href=""></a> ____<ol> ______<li><a href=""></a></li> ______<li class="curentFile"><a href=""></a></li> ____</ol></li> __</li> __<li><a href=""></a> ____<ol> ______<li><a href=""></a></li> ______<li><a href=""></a></li> ____</ol> __</li> </ol> あとは通常の:hover,:visited,:active,:focusなどの擬似クラスで・・
- hinananana
- ベストアンサー率69% (16/23)
ドロップダウンメニュー(縦)を見てやりました。 あっていますかね?w まず >カーソルが離れても文字を反転させたまま 各HTMLページのaタグを外し CSSに #ddR1 li { display: block; width: 100px; height: 25px; text-align: center; background: url(img/gnavi_bg_on.gif) no-repeat top left; } があるので line-height: 2.1; color: #f0f0f0; を追加 >またその階層メニューも常に表示の状態にしたいのです。 すいませんがこちらのこちらのやり方はわかりません…