Andreas: CSS Menü

Hallo,
Ich habe ein Menü mit CSS und HTML erstellt.
Wie kann ich dem gerade geklickten Link mitteilen dass sein Eintrag hervorgehoben wird, also einen spez. ID enthält?
Wäre es sinnvoll die Seitenurl zu ermitteln (php) und in einer Schleife eine Abfrage machen welche Seite geladen wurde?

Andreas

  1. Hallo,

    Ich habe ein Menü mit CSS und HTML erstellt.
    Wie kann ich dem gerade geklickten Link mitteilen dass sein Eintrag hervorgehoben wird, also einen spez. ID enthält?
    Wäre es sinnvoll die Seitenurl zu ermitteln (php) und in einer Schleife eine Abfrage machen welche Seite geladen wurde?

    das Problem besteht darin dass jede Seite per PHP o.ä. den gleichen Code für die
    Navigation einbindet?

    Du könntest z.B. noch dem body-Tag eine eindeutige ID geben, und dann im CSS entspr.
    über die Vererbung unterscheiden.

    Wen du sowieso per PHP während des Ladens unterscheiden kannst, hast du aber die
    Möglichkeit den HTML-Code zu beeinflussen und den Link der gerade aktiven Seite
    per HTML anders darzustellen. Das Ergebnis kann dann barrierefreier sein als nur eine
    unterschiedliche Farbgebung per CSS zu bewirken.

    Hier ist z.B. der Menupunkt der geladenen Seite noch als a-Tag, aber nicht als Link
    ausgeführt. Alternativ könnte ich mir auch einen Link mit dem Zusatz '<span
    class="wai">[Aktuelle Seite]</span>' o.ä. vorstellen, der für Screenreader erkennbar
    sein soll, aber per "normalem" CSS ausgeblendet wird; zugleich müsste dieser Link im
    CSS eine andere Farbe erhalten.

    Grüsse

    Cyx23

    1. Hallo,
      hier mal der Link: http://www.access-o-mania.de/
      Gemeint ist die Navigation links oben unter "Haupt Menü".
      Problem ist ich lade die Menüpunkte aus einer Tabelle. Hier mal ein Teil meines bisherigen Codes:

      $content .= "<tr align="left"><td><a ";
      if ((!isset($ind) && $select==0) || strpos($row['url'],$ind)>0){
       $content .= "id="activenav" ";
       $select = 1;
      }
      $content .= "href="{$row['url']}" $target class="mainnav" >{$row['title']}</a></td></tr>";

      $row['url'] ist mein Link, z.B. "index.php?ind=donwloads"
      $ind ist die action-variable der geladenen Seite.
      Das Funktioniert auch solange wie jeder Menüpunkt eine eigene action (z.B. downloads, tipps...) hat. Aber alle Unterpunkte unter Community haben die gleiche: "index.php?ind=community&op=glossar" für den Glossar.

      Weiss nicht wie ich das umsetzen soll.

      Gruß Andreas

  2. Hallo Andreas,

    Wäre es sinnvoll die Seitenurl zu ermitteln (php) und in einer Schleife eine Abfrage machen welche Seite geladen wurde?

    Schau dir dazu mal Jeenas Artikel an.

    Auf Wiederlesen
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
    1. Hallo,

      Schau dir dazu mal Jeenas Artikel an.

      Hab ich, ist aber nicht brauchbar da ich zur Laufzeit Menüpunkte hinzufüge und entferne im CMS.

      Andreas

  3. Hallo,
    habe nun eine ziemlich einfache Lösung gefunden:

    $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $content .= "<tr align="left"><td><a ";
    if ($row['url'] == $url)
     $content .= "id="activenav" ";
    $content .= "href="{$row['url']}" $target class="mainnav" >{$row['title']}</a></td></tr>";

    Gruß Andreas