wp_nav_menu: jeden <li> einzeln benennen, für CSS

  • Hallo zusammen:

    Ich möchte gern eine Navigation erstellen, wie in der Skizze oben liks gezeigt. Dazu muss ich jeden Link einzeln ansteuern können, um ihn mt CSS zu formatieren. wie mache ich das am besten? (Mit dem CSS komme ich klar.)

    So so sieht's derzeit für ein waagrechtes Menü aus:

    Hier die Skizze:

    Dank und gute Nacht!

    • 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

  • Wenn du ein WP Menü verwendest kann du in den Menüpunkten jedem einzelnen ein eigene CSS Klasse zuweisen. Dazu muss keine gesonderte Abfrage statttfinden.

    Nein, dem habe ich nichts hinzuzufügen :-)
    [HR][/HR]

  • Wenn du ein WP Menü verwendest kann du in den Menüpunkten jedem einzelnen ein eigene CSS Klasse zuweisen. Dazu muss keine gesonderte Abfrage statttfinden.


    Menü aufrufen,
    Rechts, ganz oben bei deinem Namen => auf Optionen klicken, dann kannst du dies aktivieren...

  • Hier eine erweiterte Walker-Klasse:

    Der Walker ist nichts anderes, als der von WP. Unterschied ist hervorgehoben; zusätzlich werden die erweiterten Felder (XFN, Beschreibung, etc.) mit ausgegeben. So bekommt jeder Menüpunkt eine ID zugewiesen.

    Code
    wp_nav_menu( array( 'container' =>false,
     'menu_class' => 'nav',
     'echo' => true,
     'before' => '',
     'after' => '',
     'link_before' => '',
     'link_after' => '',
     'depth' => 0,
    [COLOR=#ff0000] 'walker' => new description_walker())[/COLOR]
     );
  • Wahnsinn! Eines von beiden wird sicherlich klappen, und den Code-Snippet werde auf jeden Fall auch für später gebrauchen können. Großen Dank an beide. Wenn's nicht klappt, melde ich mich noch mal.

  • PS.: Damit müsste es auch gehen: http://www.w3schools.com/cssref/sel_nth-child.asp
    Ich hab mal vor langer Zeit diese Lösung für ein einfache Menü verwendet: ul>li+li+li (um den 3. Link in einer Liste anzusteuern). Ist das überhaupt noch gängige Syntax?

    ich nutze dafür seit sehr langer Zeit Pseudoklassen die zählen können

    HTML
    :nth-child
    :nth-of-type


    ich greife auch gerne auf jene zurück

    HTML
    :first-of-type
    :last-of-type
    :only-of-type

    damit kann man nun herrlich spielen :-)

    reinzulesen zahlt sich aus,
    weil bei
    li+li+li+li+li+li+li verliert mensch irgendwann den Überblick :-)
    und ist auch für responsive (media queries) schwieriger zu handhaben

    HTML
  • Ich komme noch mal auf die Walker-Funktion zurück. Ich habe eine Navigation, die aus flexiblen (sich der Textweite anpassenden) Kreisen besteht. Im HTML-Test funktioniert das alles (bis auf ein paar kleine Schönheitsfehler).


    So ist der Code:

    HTML:

    CSS:


    Wie müsste denn dies in der Funktion aussehen, statt
    [COLOR=#ff0000]"$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';" [/COLOR]?[COLOR=#ff0000]
    [/COLOR]
    Die ID wird eigentlich sowieso schon ausgegeben.

Jetzt mitmachen!

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