0

新しいウェブサイトをデザインしていますが、現在次の問題があります。

メニューで、サブメニューのあるページを開いてから、サブメニューのないメニュー項目にカーソルを合わせると、空の灰色のバーが表示されます。しかし、これを行う方法がわかりません。これを再現するには、次のページに移動します: http://www.kvvikingvenlo.nl/joomla/nl/aluminium-gietwerk.htmlメニューのホーム項目にカーソルを合わせます。(ホームにはサブメニューがないので、灰色のバーを空にしたい。)

編集

申し訳ありませんが、私の質問は非常に理解しにくいようです。もう一度試してみましょう:

Web ページhttp://www.kvvikingvenlo.nl/joomla/nl/aluminium-gietwerk.htmlには、別のサブ メニューをホバーするまで、常に現在のサブ メニューが表示されるメニューがあります。この部分はすでに機能しています。

ただし、ホームにカーソルを合わせると、「ONTWIKKELING、HOGEDRUK SPUITGIETEN、CNC-NABEWERKING、MONTAGE」が表示されます。

これらは、親「Processen」(現在アクティブなもの) のサブメニュー項目です。

ホームにはサブメニュー項目がないため、代わりにこのバーを空にしたいと考えています。

4

3 に答える 3

0

私の理解が正しければ、メニュー セクションにサブメニューがない場合は、その下に灰色のバーを表示するだけです。

このメニューは、ネストされた UL タグと LI タグを CSS で使用して作成されており、非常に一般的な手法です。ただし、リンクしたページの効果は、IE <9 で必要なことを実行しないことを警告する必要があります。この目的を非常に簡単に達成する純粋な CSS メニューの例がいくつかあります。

Joomlaの内部動作をいじることになるため、変更方法を知りたくない(または知らない)場合は、まずHOMEの下の「偽の」LI内に空のSPANを作成し、それを設定します特定の ( HTML のclassまたはid属性を介して) SPAN で、幅は灰色のバーと同じです。次にdisplay:block;、SPAN に設定します。これは、:hoverイベントが SPAN の親クラスで発生したときに実行する必要があります。

例: classSPAN タグの をhidemeに設定した場合:

.menumenu li ul li .hideme { width: [width of the grey bar]; }

.menumenu li:hover ul li .hideme { display:block; }

きれいではありませんが、うまくいくはずです。

編集私は正しい考えを持っていましたが、実行が間違っていました(朝が早すぎる)

実際に必要なのは、HOME LI (つまりfakeUL ) の下の偽の UL に一意の識別子を与え、その中に LI をネストして SPAN タグを保持し、その SPAN タグのサイズをwidthプロパティで定義し、次に CSS を定義することです。次のようになります。

.menumenu li .fakeUL li span { width: [width of the grey bar]; }

.menumenu li:hover .fakeUL li span { display:block; }

于 2013-04-25T09:18:39.727 に答える
0

私はあなたがjavascriptを介してこれを行う必要があると思います.あなたはあなた.activeul親であり、それはあなたの親liです. それが理にかなっていることを願っています。a.active

于 2013-04-25T09:10:25.023 に答える
0

メニューに空のulタグを挿入するように、joomlaでテンプレートのオーバーライドを作成することになりました。これが私が持っていた最もクリーンなオプションになると思いました。

テンプレートをオーバーライドするには、ファイル \modules\mod_mainmenu\tmpl\default.php を \templates\YOURTEMPLATE\html\mod_mainmenu\default.php にコピーします。

次に、コピーしたファイルで次のコードを見つけます。

if (isset($path) && $node->attributes('id') == $path[0]) {
    $node->addAttribute('id', 'current');
} else {
    $node->removeAttribute('id');
}
$node->removeAttribute('rel');
$node->removeAttribute('level');
$node->removeAttribute('access');

そして、これらの行を直前に追加します。

if (($node->name() == 'li') && !isset($node->ul)) {
    $node->addChild('ul ');
    $node->addChild('/ul');
}

私が誰かを助けてくれることを願っています!

于 2013-05-17T08:05:01.500 に答える