[GELÖST]Menü: cssMenu soll aktiv nicht hovern

Für Fragen und Diskussionen zum Layout und Design, Templates und Stylesheets sowie Themes
Post Reply
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

[GELÖST]Menü: cssMenu soll aktiv nicht hovern

Post by antibart »

Hallo,

Ok - der Titel ist nicht so eindeutig ... sorry, aber besser ging es nicht.

Ich habe ein horizontales Drop-Down-Hover-Menü. Nicht das mitgelieferte, aber eines, was ähnlich funktioert mit eingerückter Liste. Das Submenu hovert dann wie man es kennt unter jedem Menüpunt auf.

Das Problem ist folgendes: Wenn ein Hauptpunkt aktiv ist, soll das Submenü an der jeweilgen Stelle unter dem Hauptmenüpunkt "stehenbleiben". An der gleichen Position, wo es voher "gehovert" hat.

Ich könnte nun meherere Templatevariationen benutzen und jeweils eine zweiten Menutag für das Submenu an die jeweilige Stelle einfügen, was ich vom Handling her ungünstig finde.

Könnte man die Klasse "activeparent" oder "currentpage" dafür mißbrauchen? In dem man sie auf die Liste anwendet, statt nur auf die Links? Oder eigene Klassen für aktive Listen-Elemente ins Menü-Template einbauen? Ich habe da eine leichte Ahnung. im Detail tappe ich aber noch Dunklen...

Die css fürs Menu (die aber eigentlich nicht das Problem sind - denn sie tun ja, was sie sollen).

Code: Select all

#menu {
width: 100%;
height:140px;
background: url(images/schatten.jpg) no-repeat;
font-family: 'crimson text';
font-size: 150%;
}
#menu ul /* alle listen */
{
padding: 0;
margin: 0 0 0 30px;
list-style:none;
line-height:1;
}

#menu a
{
display: block;
color: #fff;
padding:0 0 7px 20px ;
margin: 5px 0 0 20px;
text-decoration:none;
}

#menu a:hover {
background: url(images/menulist.gif) no-repeat ;
}


#menu a.currentpage {
background: url(images/menulist.gif) no-repeat ;
}

#menu a:activeparent {}

#menu li /* all list items */
{
float:left;
width: 150px;
}

#menu li ul /* second-level lists */
{
position:  absolute;
padding: 0;
background:#C5CFC8;
display:block;
line-height: 80%;
margin: 0 0 0 20px;
width: 180px;
left: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers */
        }

#menu li ul li /* second-level lists */
{
width: 180px;
left:                         -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers */
}

#menu li ul a {
display:block;
margin: 0;
border-bottom: 2px solid #fff;
padding:2px 0 2px 20px;
font-size: 90%;
color: #525253;
}


#menu li ul  a:hover {
color: #fff;
background:  #525253;
}


#menu li:hover ul ul, #menu li:hover ul ul ul, #menu li.sfhover ul ul, #menu li.sfhover ul ul ul
        {
        left: -999em;
        }

#menu li:hover ul, #menu li li:hover ul, #menu li li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul, #menu li li li.sfhover ul /* lists nested under hovered list items */
        {
        left: auto;

        }
Und für den Bedarf noch das Menü-Template

Code: Select all

{* CSS classes used in this template:
.activeparent - The top level parent when a child is the active/current page
li.active0n h3 - n is the depth/level of the node. To style the active page for each level separately. The active page is not clickable.
.clearfix - Used for the unclickable h3 to use the entire width of the li, just like the anchors. See the Tools stylesheet in the default CMSMS installation.
li.sectionheader h3 - To style section header
li.separator - To style the ruler for the separator *} 

{if $count > 0}
<ul>
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}

{if $node->current == true}
<li><a class="currentpage" href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}>{$node->menutext}</a>

{elseif $node->parent == true}
<li class="activeparent"><a class="activeparent" href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}>{$node->menutext}</a>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}

{elseif $node->type == 'separator'}
<li class="separator" style="list-style-type: none;"> |


{else}
<li><a href="{$node->url}"{if $node->accesskey != ''} accesskey="{$node->accesskey}"{/if}{if $node->tabindex != ''} tabindex="{$node->tabindex}"{/if}{if $node->titleattribute != ''} title="{$node->titleattribute}"{/if}{if $node->target != ''} target="{$node->target}"{/if}>{$node->menutext}</a>

{/if}

{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
Last edited by antibart on Thu Aug 05, 2010 10:54 am, edited 1 time in total.
cyberman

Re: Menü: cssMenu soll aktiv nicht hovern

Post by cyberman »

Ähmm, möglicherweise stehe ich heute auf dem Schlauch, aber wieso sollte ein Submenü-Eintrag in einem Dropdown-Menü dort stehen bleiben, wo es vorher gehovert hat ??? - kann ich mir bildlich nicht so richtig vorstellen.
NaN

Re: Menü: cssMenu soll aktiv nicht hovern

Post by NaN »

Ohne mir jetzt mal Gedanken über Sinn und Zweck des ganzen zu machen, ich denke das Problem liegt doch am CSS. Versuchs mal damit:

Code: Select all


#menu li.activeparent ul,
#menu li.activeparent ul li,
#menu li.currentpage ul,
#menu li.currentpage ul li {
    left: auto;
}

#menu li.activeparent ul li ul,
#menu li.activeparent ul li ul li,
#menu li.currentpage ul li ul,
#menu li.currentpage ul li ul li {
    left: -999em;
}

antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Menü: cssMenu soll aktiv nicht hovern

Post by antibart »

EDIT:

Lieber NaN: GENAU DAS WARS ....DANKE...

Und glücklicherweise lag ich ja nicht so ganz falsch mit meiner vermutung über activeparent und currentpage an die Lösung zu gelangen.

Sinn und Zweck: damit nicht die Submenüpunkte beim Durchnavigieren einesd Breiches nicht verschwinden und nur ausschließlich über den Klapprunter zu erreichen sind.
Last edited by antibart on Thu Aug 05, 2010 10:26 am, edited 1 time in total.
cyberman

Re: Menü: cssMenu soll aktiv nicht hovern

Post by cyberman »

Alles klar - du meinst ein Dropdown, welches nach dessen Aktivieriung eines Unterpunktes "offen"/sichtbar bleibt ... muss am Wetter liegen :).
antibart
Power Poster
Power Poster
Posts: 1162
Joined: Sun Aug 17, 2008 9:29 am

Re: Menü: cssMenu soll aktiv nicht hovern

Post by antibart »

cyberman wrote: Alles klar - du meinst ein Dropdown, welches nach dessen Aktivieriung eines Unterpunktes "offen"/sichtbar bleibt ... muss am Wetter liegen :).
Und dass ich es nicht so einfach formuliert habe, liegt wohl auch am Wetter ;)
Post Reply

Return to “Layout und Design”