
ezorisu-web CSSでドロップダウンメニュー
http://ezorisu-web.com/web-design/archives/356
のサンプルを使用させていただき、ドロップダウン付グローバルナビゲーションをカスタマイズしていたところ、壁に当たってしまったので質問させてください。
上記サイトのサンプルどおりに作成したメニューはきちんと動きましたが、今回は添付データの画像のように、初期状態で見えている「一段目のメニュー」のみ画像を使用したいのです。
一段目のメニューにマウスオンで画像ロールオーバー&上記リンク先サンプルのようにドロップダウンメニュー表示、という動作をさせたいと思っています。
一段目用の画像は、形が不定形で背景にも模様が入っているため、透過PNGを使用しております。
文字も画像化して統合してあります。
今回はIE6にも対応する必要があるため、
ITキヲスク | IE6で透過pngを表示させるオススメscript、「DD_belatedPNG.js」
http://smkn.xsrv.jp/blog/2009/02/dd_belatedpng_js/
にて配布している「DD_belatedPNG.js」を導入しました。
また、CSSを使い、背景をスライドさせて実現させるタイプのロールオーバー処理を施してあります。
http://www.1uphp.com/con2/over/over3.html
を参考に、画像は1枚絵にせずメニュー名別に分割してあります。
ここのリスト化とロールオーバーまではきちんと動きました。
ただ、これを組み合わせると挙動がおかしくなります。
一番上のリンク先のサンプルを基に一段目に背景画像を設定すると、二段目に背景画像が継承されてしまい、思うように表示されません。
添付画像のような動きを実現させるには、どのようなソースを書けば良いでしょうか。
分かりにくい点があるかと思いますが、必要事項あれば追記しますので、よろしくお願いいたします。

No.2ベストアンサー
- 回答日時:
:hover 擬似クラスの対象が a になってるから, a からカーソルが外れたときにロールオーバーの効果が消える.
現在ロールオーバーを設定するセレクタは,
li > a:hover
だろうけど,
li:hover > a
とかにするといい. この設定では 子のリストにカーソルが重なっていてもロールオーバー効果は持続する.
ただし IE はバージョンによって :hover 擬似クラスを a にしか使えなかったり, 直系指定の ">" が使えない.
それと ">" は優先度が高くなるから css の設定を見直す必要が出たりするから注意.
恥ずかしながら、a 要素以外に :hover を使うという発想がなく、目から鱗でした。まだまだ勉強不足です。
おっしゃるとおり li に設定することで、思ったとおりの動きが実現できました@Firefox、Safari
IEでのバージョン別の挙動については、後ほど環境を確保して別途調整してみます。
ありがとうございました。
No.1
- 回答日時:
に示されてるコードだと ul と li の ネスト構造が分かりづらいのだけれど, ul は li の子要素として出現する構造になる.
一段目 li に背景として画像を設定すると, background はデフォルト継承だから背景画像とか背景色は子要素の ul にもすべて適用される.
継承させたくないなら, 明示的に背景関連のプロパティを設定しないといけない.
具体的に何をすればよいかといえば, 二段目以降の li もしくは ul の background に継承をさせない指定をする.
#menu-sample li li {
background: 色とか;
}
色しか指定しなくても, 親の background をすべて消す必要があるから background の指定が必要.
idは最初に示してあるURLのコードにならっている.
この回答への補足
ご回答ありがとうございます。
二段目以降にも画像が表示されてしまう件、二段目の背景画像を background-image:none; でリセットした後に設定し直す事で解決しました。
他にも多少問題がありましたが、継承関係を洗い直す事で解決しました。ありがとうございます。
質問に質問を重ねてしまう形になり恐縮ですが、もう一つよろしいでしょうか?
質問文のとおり、一段目には
http://www.1uphp.com/con2/over/over3.html
を参考にロールオーバーを設定しているのですが、カーソルを二段目に移した瞬間に一段目がデフォルト状態に戻ってしまうのが少し気になりました。
カーソルが二段目に移った際にロールオーバー状態を維持し、一段目もしくは二段目から外れた際にデフォルトに戻す方法はあるのでしょうか。
もし何か方法があれば試したいと思います。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- HTML・CSS 差し込み画像にをcssで大きさ指定したい 1 2022/11/23 23:14
- HTML・CSS svgクリップパスの応用コーディング方法 2 2022/04/09 09:07
- 写真 写真(画像)編集スキルを質問する時 1 2022/12/07 14:14
- Photoshop(フォトショップ) 【至急】 ウェブサイトやアプリとかでよく見かける、添付画像のように背景にあるものをぼかしつつ透過する 2 2023/07/17 10:57
- Android(アンドロイド) いま3台のAndroidを使っています。 AndroidってiPhoneには無いmicroSDXCが 1 2022/05/06 11:42
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- モニター・ディスプレイ Displayport接続時にディスプレイ設定の一部の項目がチラついて変更できない 3 2022/07/31 10:06
- HTML・CSS リンクバナーのHTMLタグ。画像を変えたり、設置位置を変えるとバナー貼付け側はどう見える? 2 2023/02/01 12:01
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HPデザインのコーディング方法
-
タブレットの高解像度化で、見...
-
クリッカブルマップのタップし...
-
画像を取り出す
-
背景画像を指定したあとにスタ...
-
楽天ショップのデザイン
-
CSS3 PIEがIE6,7に効きません。
-
ホームページの枠に影をつける...
-
ひとつの画像をWEBで異なる小さ...
-
gooの簡単ホームページでメイン...
-
画像に影付画像を背景に設定、...
-
ホームページの背景画像を画面...
-
【至急お助け!】チェックボッ...
-
onMouseOverでリンクを作る方法...
-
IE, NN の動作の違い(height=100%)
-
IMGタグで画像の繰り返し使用は…
-
<hr>の縦バージョンはありますか?
-
CSSの画像のマウスオーバー...
-
CSSで背景画像をランダムに表示...
-
background-sizeの背景で最小値...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【至急お助け!】チェックボッ...
-
【Webサイト】画像が小さく表示...
-
画像とその下にあるテキストの...
-
background-repeat CSS で切れ...
-
<hr>の縦バージョンはありますか?
-
WEB上でディレクトリ内の画像を...
-
IMGタグで画像の繰り返し使用は…
-
画像の上にテキスト配置で、拡...
-
同じ画像 複数回使用
-
background-sizeでcontainする...
-
iframe内をクリックさせない方...
-
要素の幅をいろんな写真の幅に...
-
background-sizeの背景で最小値...
-
ページごとに背景画像を変更し...
-
lightbox2で画像を天地左右中央...
-
CSSのrepeatで切れ目が出る
-
画像の大きさに合わせて文字の...
-
フッターの背景に色を指定した...
-
Safariでのひどいレイアウト崩れ
-
CSSで背景画像をランダムに表示...
おすすめ情報