Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 04. März 2015 13:06

Bastelfix3
hat von CMS/ms gehört
Registriert: 19. Februar 2015
Beiträge: 4

[GELÖST] menuactive kann ich nicht definieren

Hallo,

ich habe eine letzte Frage. Ich würde gerne die Elternelemente und die aktiven Elemente mit einer bestimmte Farbe definieren. Mir ist eigentlich klar wie das gehen sollte aber ich denke die Klassen sind in meinem Menutemplate nicht richtig definiert. Da ich praktisch keine ahnung von php habe kann mir vielleicht jemand helfen wie ich die template umschreiben muss um zum erfolg zu kommen?

Ich habe zwei menus eingebaut deswegen zwei menutemplates?!?. Die aktiven Menüpunkte beim horizontalen Menü reagieren aber nicht die Eltern der aktiven Menüpunkte.
In der Seitennavi reagiert garnichts. Die frage ist nur relevant für den Menüpunkt PROJEKTE weil es hier drei Menulevel gibt.

http://www.bachmannvanaaken.com/

css sieht so aus:

[== css ==]
.menuactive{ color: blue; }              
.activeparent{ color: blue; }
.menuparent{color: blue;}                  
.currentpage{color: blue; }

Menutemplate für horizontals menu:

{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->parent == true or ($node->current == true and $node->haschildren == true)}
<li class="menuactive menuparent"><a class="menuactive menuparent" href="{$node->url}"><span>{$node->menutext}</span></a>

{elseif $node->haschildren == true and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="parent"><a class="parent" href="{$node->url}"><span>{$node->menutext}</span></a>

{elseif $node->current == true}
<li class="currentpage"><h3><span>{$node->menutext}</span></h3>

{elseif $node->type == 'sectionheader'}
<li class="sectionheader"><span>{$node->menutext}</span>

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

{else}
<li><a href="{$node->url}"><span class="navlistspan">{$node->menutext}</span></a>

{/if}

{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}


Menutemplate für vertikales menu:
<aside>
{if $count > 0}
<ul class="navlist">
{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 class="navlist"><a href="{$node->url}" class="currentpage"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->parent == true && $node->depth == 1 and $node->type != 'sectionheader' and $node->type != 'separator'}
<li class="activeparent"> <a href="{$node->url}" class="activeparent"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{elseif $node->type == 'sectionheader'}
<li class="navlist">{$node->menutext}

{elseif $node->type == 'separator'}
<li class="navlist"> <hr class="separator" />

{else}
<li class="navlist"><a href="{$node->url}"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </a>

{/if}

{/foreach}

{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}
</aside>

Über einen fingerzeig was hier falsch ist würde ich mich freuen.
Vielen Dank für eure Hilfe!
Hannes

Offline

#2 04. März 2015 14:46

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] menuactive kann ich nicht definieren

In Deinem Fall sollte das recht einfach sein.
Das Problem ist, dass die Textfarbe "blue" nicht angewendet wird, weil der Selektor für diese Formatierung verglichen mit einer vorherigen Formatierung zu allgemein ist.

Im CSS gibt es eine Art "Hierarchie". Formatierungen "speziellerer" Selektoren haben Vorrang vor allgemeinen Selektoren. Das nennt sich "CSS Spezifität". Siehe z.B. hier, hier oder hier.

Bsp.:

a:link {
    color: black;
}
.menuactive { 
    color: blue; 
}

Die Farbe "black" wird speziell auf bestimmte Arten von Links angewendet.
Die Farbe "blue" nur allgemein auf Elemente einer bestimmten Klasse.
Ersteres ist genauer, hat also mehr Gewicht.

Du müsstest in Deinem Stylesheet also einfach nur ein "a" vor die Klasse setzen:

a.activeparent{ color: blue; }
a.menuparent{color: blue;}                  
a.currentpage{color: blue; }

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 04. März 2015 16:28

Bastelfix3
hat von CMS/ms gehört
Registriert: 19. Februar 2015
Beiträge: 4

Re: [GELÖST] menuactive kann ich nicht definieren

JAAA,

werde deine Links studieren! Ich denke das ist der Grund warum ich mit einigen glitches zu kämpfen hatte.

Vielen Dank!

Offline