私の問題は以前に何度も解決されたと思いますが、正確に私のケースを見つけることができません。
サブメニューを含む垂直メニューがあり、親がクリックされた (ホバーされていない) 場合にのみサブメニューを表示し、一度に 1 つのサブメニューのみを表示し、メニューのどこかをクリックした後、サブメニューを非表示にします。
これは私が今持っているものです - それは今のホバリングに基づいています. a:hover を a:active のようなものに変更しようとしましたが、うまくいきません (私は CSS があまり得意ではありません)。
/* コンテナ */ #cssmenu > ul { 表示ブロック; 位置: 相対; //幅: 190px; 幅:100%; } /* リンクを含むリスト要素 */ #cssmenu > ULリ{ 表示ブロック; 位置: 相対; マージン: 0; パディング: 0; 幅: 100%; } /* 一般的なリンク スタイル */ #cssmenu > ul li a { 表示ブロック; 位置: 相対; マージン: 2; 幅:95%; 高さ:50px; 背景色:#ABC578; ボーダー左:ソリッド 0px #FFFFFF; border-bottom:solid 1px #FFFFFF; フォント: 0.7em タホマ、サンセリフ。 フォントサイズ: 14px; font-weight:太字; 色: #FFFFFF; テキスト装飾:なし; パディングトップ:30px; } /* メニュー/サブメニュー リンクのホバー状態 */ #cssmenu > ul li>a:hover, #cssmenu > ul li:hover>a { 色: #fff; text-shadow: 0 1px 0 rgba(0, 0, 0, .3); 背景: #82c500; background: -webkit-linear-gradient(bottom, #82c500, #000000); 背景: -ms-linear-gradient(bottom, #82c500, #000000); 背景: -moz-linear-gradient(bottom, #82c500, #000000); background: -o-linear-gradient(bottom, #82c500, #000000); 境界線の色: 透明; } /* サブメニューを示す矢印 */ #cssmenu > ul .has-sub>a::after { コンテンツ: ''; 位置: 絶対; 上: 34px; 右: 8px; 幅: 0px; 高さ: 0px; /* ボーダーを使用して矢印を作成する */ 境界線: 4px の無地の透明。 ボーダー左: 4px ソリッド #d8d8d8; } /* 同じ矢印ですが、影の効果を作成するために色が濃くなっています */ #cssmenu > ul .has-sub>a::before { コンテンツ: ''; 位置: 絶対; 上: 35px; 右: 8px; 幅: 0px; 高さ: 0px; /* ボーダーを使用して矢印を作成する */ 境界線: 4px の無地の透明。 ボーダー左: 4px ソリッド #000; } /* ホバー時の矢印の色を変更 */ #cssmenu > ul li>a:hover::after, #cssmenu > ul li:hover>a::after { border-left: 4px ソリッド #fff; } #cssmenu > ul li>a:hover::before, #cssmenu > ul li:hover>a::before { border-left: 4px ソリッド rgba(0, 0, 0, .3); } /* サブメニュー */ #cssmenu > ul ul { 位置: 絶対; 左:95%; 幅:100%; 上: -9999px; パディング左: 5px; 不透明度: 0; /* 不透明度遷移を使用して作成されたフェード効果 */ -webkit-transition: 不透明度 .2s イーズイン; -moz-transition: opacity .2s イーズイン; -o-transition: opacity .2s イーズイン; -ms-transition: opacity .2s イーズイン; } /* ユーザーが親リンクをホバリングしているときにサブメニューを表示する */ #cssmenu > ul li:hover>ul { 上: -2px; 不透明度: 1; }
誰かアイデアを教えてください。