menu mit active function (& verschiedenen grafiken)

  • Hallo!
    Ich bin gerade dabei aus meiner Seiten Navigation ein vollständiges Menu mit Grafiken, Active Funktion und allem drum und dran zu machen.

    genauer gesagt habe ich dieses tutorial nachgebaut..

    Soweit so gut, meine "Seiten" werden erkannt und auch "gehighlighted" wenn ich drauf bin!

    Ich würde das ganze jetzt aber mit verschiedenen Grafiken für jede "Seite" haben!
    Meine Navi sieht also so aus: Home - Skills - Contact

    Screenshot von Navi, wie sie später aussehen soll:
    [Blockierte Grafik: http://www2.pic-upload.de/08.12.09/6sn9dzylxzqa.jpg]


    Jede Seite soll eine andere Hover/Active Grafik bekommen und genau das ist das Problem, welches ich probiere zu lösen. Wie weise ich meinen Seiten unterschiedliche Klassen (Grafiken) zu??

    Hier der Code für die header.php

    ..und hier der Code für die CSS:

    Einmal editiert, zuletzt von yessir (8. Dezember 2009 um 01:08)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Erzeugt wp_list_pages nicht schon automatisch verschiedene Klassen an den Links? Die müsstest Du doch nur noch im Stylesheet entsprechend ansprechen.

  • Wie gesagt, wp_list_pages müsste von sich aus Klassennamen wie "page-item-123" an die Links hängen. Tut es das bei Dir nicht? Wobei "123" die jeweilige ID der Seite ist. Das kannst dann doch problemlos ansprechen im CSS, oder?!

    Aufwändiger müsstest Du es bauen, falls das ganze dynamischer werden soll. Falls etwa oft neue Seiten dazu kommen und Du das anzuzeigende Bild in einem Benutzerdefinierten Feld speichern willst oder aus einer Liste an möglichen Bildern auswählen willst. Aber für ein paar selten zu ändernde statische Seiten sollte das reichen.

  • stimmt du hast recht, im quellcode steht nun folgendes:

    habe jetzt probiert am bsp "48" das ganze anzusprechen, allerdings ohne erfolg.. was mach ich verkehrt?

    Zitat

    .page_item page-item-48 a:hover, .page_item page-item-48 a:focus, .page_item page-item-48 a:active {
    background-color : #000;
    color : #fff;}

  • Der Selektor im Stylesheets ist verkehrt. Richtiger wäre es so, denke ich:

    Code
    li.page-item-48 a:hover, li.page-item-48 a:focus, li.page-item-48 a:active {
      background-color : #000;
          color : #fff;
    }

    ".page_item page-item-48 a" hieße ja ein Link in einem Element namens "page-item-48" (gibt es nicht, für einen Klassenselektor fehlt der Punkt davor) in einem anderen Element mit Klasse "page-item". :-)

  • kann es sein das ich bei den anderen styleangaben noch irgendwas entfernen muss? es funktioniert nämlich auch so nicht.. :-(

    das ganze sieht also so nun aus:

  • Zuerst mal schreib Deine Änderungen möglichst ans Ende des Stylesheets. Und dann kann es natürlich sein, dass darüberstehende Selektoren Deine Angaben noch überschreiben. #irgendeine-id a hat z.B. mehr Priorität als .irgendeine-klasse a, unabhängig davon, wo es im Stylesheet steht. Du musst die Angabe des Selektors ggf. spezieller machen. Von dem geposteten Stylesheet her würde ich vermuten, dass es so aussehen sollte:

    Code
    ul#nav li.page-item-48 a:hover, ul#nav li.page-item-48 a:focus, ul#nav li.page-item-48 a:active {
         background-color : #000;
             color : #fff;
    }
  • ah super es tut sich was :-)
    allerdings klappt das mit dem active noch nicht, nur hover geht!

    Kann es sein, dass in der "page.php" noch was getan werden muss.. ?!

    danke aufjedenfall schonmal für die großartige hilfe, ich denke wir sind ganz dich dranne :)

  • Sicher, dass hier nicht :focus mit current_page_item verwechselt wird?

    Zitat

    :focus = für Elemente, die den Fokus erhalten, z.B. durch "Durchsteppen" mit der Tabulator-Taste (CSS 2.0)

  • könntest Du das Endergebnis abschließend posten? Liest sich alles sehr interessant. Danke.


  • Jap klar sobald ich eine vollständige Lösung für diese ganze Sache habe, werde ich sie hier posten.

    Stand jetzt: ..die Unterseiten funktionieren, aber die Home Seite nicht!
    Ich habe mal noch ein wenig recherchiert im Netz und nun ein etwas anderes script gefunden

    ..und das hier ist nun dabei rausgekommen, nachdem ich es etwas nach meiner Site angepasst habe! Wiegesagt es funktioniert alles bis auf die "Home" Seite, da wird leider noch nix gehighlighted.

  • hm.. ich seh da nicht so wirklich durch, aber habe mal anstatt 'home' -> 'is_front_page' bzw 'is_home' bzw 'is_front_page' eingesetzt.. leider ohne erfolg!

  • ah jetzt geht es :D ..mit 'is_home' funktionierts!

    ..aber wenn man eine kategorie anklickt, macht er keine der 3 seiten active! woran könnte das noch liegen?

  • Zitat

    aber wenn man eine kategorie anklickt, macht er keine der 3 seiten active! woran könnte das noch liegen?

    Daran, dass Du dann auf keiner der drei Seiten bist, würde ich sagen. ;-)

  • ok :)
    dachte, die kategorien wären unterseiten von der hauptseite..

    gibt es keine möglichkeit dem script nicht sagen "sei active, wenn kategorie angeklickt ist" ?! ..oder so ähnlich^^

  • Die Kategorien sind Kategorien, keine Seiten. Wenn Du bei allem außer den statischen Seiten "Home" hervorheben willst, kannst Du natürlich die Abfrage etwa so gestalten:

    PHP
    if (is_home() || (!is_page() && !is_404()))

    Dann wäre es hervorgehoben wenn es die Startseite ist und bei allem anderen außer statischen Seiten und der 404-Seite.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!