menu1とmenu2の挙動について疑問があります。
添付画像をご覧ください。
menu2からsub4-1を選択している状態です。
この時、menu2の背景色が赤に戻らないのは仕様でしょうか?
それとも何か間違っているのでしょうか?
背景を画像にしても同じ結果になります。
--------------------------------------------
ul#menu li{
float:left;
list-style-type:none;
text-align:center;
}
ul#menu ul li{
clear:both;
}
ul#menu li a,.menu1,.menu2{
display:block;
width:200px;
height:50px;
line-height:50px;
text-decoration:none;
background:#ff0000;
}
ul#menu li a:hover,.menu1:hover,.menu2:hover{
background:#ffcc00;
}
ul#menu ul{
display:none;
}
ul#menu li:hover > ul{
display:block;
position:absolute;
}
ul#menu ul ul{
margin:-50px 0 0 200px;
}
---------------------
<ul id="menu">
<li class="menu1">menu1</a>
<ul>
<li><a href="#">sub1</a>
<ul>
<li><a href="#">sub1-1</a></li>
<li><a href="#">sub1-2</a></li>
</ul>
</li>
<li><a href="#">sub2</a></li>
</ul>
</li>
<li class="menu2">menu2</a>
<ul>
<li><a href="#">sub3</a></li>
<li><a href="#">sub4</a>
<ul>
<li><a href="#">sub4-1</a></li>
<li><a href="#">sub4-2</a></li>
</ul>
</li>
</ul>
</li>
</ul>
------------------
お分かりになる方よろしくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>「menu2の背景色が赤に戻らない」理由と対策なのです。
元に戻りますよ。
No.2で回答したように、プルダウンと色の変化を別の要素に指定しておかないとなりません。
li:hoverで開いておかないと、その子供のliに移動したときに閉じられてしまいます。
a:hoverで指定しておかないと、その子供に移動したときに色が戻りません。
No.4
- 回答日時:
階層一にはリンクがない場合の対処--menueC--もしてみました。
階層一にはリンクがない場合の対処--menueC--もしてみました。
とにかく難しくしないことです。シンプル イズ ザ ベスト。
時間が取れたので、簡単なサンプルを書いてみましたが、これでスマホにも幅広ディスプレイにも対応しています。(ウィンドウ幅を変えて確認)
また印刷にも対応・・・印刷プレビューで確認
HTMLがシンプルですから、どのようにもデザインできるということです。
※おまけに新着のリンクもわかるようにしておきました。
もちろん
★Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )
でチェック済みのウェブ標準です。HTML4.01strict + CSS2.1
★<div class="header">などは<header>にすれば、そのままHTML5になります。
率直に、率直に考えることです。そうしないと、益々複雑になって、「はまっちゃいます!!」
こんなに簡単な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" media="screen">
<!--
#siteMap ol{
list-style:none;
margin:0;padding:0;
line-height:2em;text-align:center;
}
#siteMap ol li{
display:inline-block;position:relative;
width:18%;min-width:4em;
background-color:silver;
border:solid 1px yellow;
}
#siteMap ol li ol{
position:absolute;top:2em;left:0;
width:100%;
display:none;
}
#siteMap ol li:hover ol li ol{display:none;top:0;left:100%;}
#siteMap ol li ol li{display:block;width:100%;}
#siteMap ol li:hover ol{display:block;z-index:10;}
#siteMap ol li:hover ol li:hover ol{display:block;}
#siteMap a,#siteMap span{display:block;text-decoration:none;width:100%;height:100%;}
#siteMap a:hover,#siteMap span:hover{background-color:rgb(255,200,0);}
#siteMap a[href="/B/2/1"]:hover{background-color:aqua;}
#siteMap a[href="/B/2/1"]:hover:after{
content:"★新着★";color:red;
position:absolute;left:100%;top:0;width:100%;text-align:left;
}
-->
</style>
<style type="text/css" media="print">
<!--
#siteMap a{text-decoration:none;color:black;}
#siteMap a:after{content:"\A →(http://hoge.com"attr(href) ")";white-space:pre;}
#siteMap a[href="/B/2/1"]:after{content:"【新着】\A →(http://hoge.com"attr(href) ")";white-space:pre;}
-->
</style>
</head>
<body>
<div class="header">
<h1>タイトル</h1>
<p>このページでは・・・・</p>
<div class="nav" id="siteMap">
<ol>
<li><a href="/A">menyeA</a>
<ol>
<li><a href="/A/1">menueA-1</a></li>
<li><a href="/A/1">menueA-2</a></li>
</ol>
</li>
<li><a href="/B">menyeB</a>
<ol>
<li><a href="/B/1">menueB-1</a></li>
<li><a href="/B/2">menueB-2</a>
<ol>
<li><a href="/B/2/1">menueB-2-1</a></li>
<li><a href="/B/2/2">menueB-2-2</a></li>
<li><a href="/B/2/3">menueB-2-3</a></li>
</ol>
</li>
<li><a href="/B/3">menueB-3</a>
<ol>
<li><a href="/B/3/1">menueB-3-1</a></li>
<li><a href="/B/3/2">menueB-3-2</a></li>
</ol>
</li>
</ol>
</li>
<li><span>menyeC</span>
<ol>
<li><a href="/C/1">menueC-1</a></li>
<li><a href="/C/2">menueC-2</a></li>
</ol>
</li>
<li><a href="/D">menyeD</a>
<ol>
<li><a href="/D/1">menueD-1</a></li>
<li><a href="/D/2">menueD-2</a></li>
</ol>
</li>
</ol>
</div>
</div>
<div class="section">
<h2>見出し</h2>
<p>・・・</p>
</div>
<div class="footer">
<h2>文書情報</h2>
<dl class="documentHistry">
<dt id="FIRST-PUBLISHED">First Published</dt>
<dd>2012-08-10</dd>
<dt id="LAST-MODIFIED">Last Modified</dt>
<dd>2012-08-10 12:00:00 (JST)</dd>
</dl>
<address>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
</div>
</body>
</html>
ご丁寧にありがとうございます。
ただ、私が知りたいのは質問にありますように
「menu2の背景色が赤に戻らない」理由と対策なのです。
ORUKA1951さんのソースは今後の参考にさせて頂きます。
ありがとうございました。
No.3
- 回答日時:
昨日は時間が取れなくて簡単に回答しましたが、解決しましたか?
要は、プルダウンとマウスオーバーされたときの指定を異なる要素に指定すればよいのです。
また、HTMLをあんなに複雑にしたら駄目です。項目が増えるたびにclass名を書き換えなければなりません。またスタイルシートが複雑になる原因にもなります。
単純に
<div class="nav" id="siteMap">
_<ol>
__<li><a href="./A">menyeA</a>
___<ol>
____<li><a href="./A/1">menueA-1</a></li>
____<li><a href="./A/1">menueA-2</a></li>
___</ol>
__</li>
__<li><a href="./B">menyeB</a>
___<ol>
____<li><a href="./B/1">menueB-1</a></li>
____<li><a href="./B/2">menueB-2</a>
_____<ol>
______<li><a href="./B/2/1">menueB-2-1</a></li>
______<li><a href="./B/2/2">menueB-2-2</a></li>
______<li><a href="./B/2/3">menueB-2-3</a></li>
_____</ol>
____</li>
・・であれば必要十分です。
> 項目が増えるたびにclass名を
class名は画像を使う事を考慮していたので付けました。
言葉足らずですみません。
NO.2さんへも回答をしましたが
menu1,menu2のアンカーはリンク先が無いので使えません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html/cssの、navを2段にする...
-
css 横並びのナビゲーションバ...
-
<table>の高さ固定。情報増加時...
-
番号付きリスト(<Ol><Li>・・...
-
html <li>の中の文字一部に色を...
-
htmlの<ol>タグで、数字などを...
-
リストマーカーをボックス内に...
-
CSSでの<ul><li>を使った改行設定
-
list-style-type部分だけ大きく...
-
リストを2つに分割して、それぞ...
-
カルーセルスライダー「slick.j...
-
CSS使用。表のセルの中で、強制...
-
display:table;を多段表示させたい
-
ulタグやliタグの中でbrタグ...
-
複数行にまたがる括弧を表示し...
-
リストの左余白の削除方法
-
HTMLで組織図を作成する方法
-
ひとつの枠(divとかtable)の...
-
マウスアウト後も画像が消えた...
-
ポップアップメニューを表のよ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
リストマーカーをボックス内に...
-
番号付きリスト(<Ol><Li>・・...
-
liタグの中に<p>タグやら<dl>を...
-
レスポンシブWebデザインでリン...
-
<table>の高さ固定。情報増加時...
-
<ul><li></li></ul>にするメリ...
-
リストの数字のフォントサイズ...
-
HTMLで組織図を作成する方法
-
ulタグやliタグの中でbrタグ...
-
divタグ内のコンテンツが重なっ...
-
画像にリンクを張ると画像がず...
-
複数行にまたがる括弧を表示し...
-
ページを開いているときのリン...
-
html <ul></ul>の並びで一行空...
-
html/cssの、navを2段にする...
-
HTML5のfooterに見出しを付けて...
-
<ul>~</ul>が二つ続くと間に改...
-
htmlの<ol>タグで、数字などを...
-
リンク文字同士の間隔を開ける...
-
CSSでつくったメニューのアニメ...
おすすめ情報