Navigation Spielereien verstehen

  • Ich habe mir endlich die navigation semantisch korrekt als Liste umgesetzt, nun möchte ich das nur wenn man klickt der border unten 2px breit/hoch ist, wenn man dann wieder woanders hinklickt soll der border beim letzten Link wegegehn und beim nächsten Link bleiben, kein hover sondern bei KLICK.
    Ich kenne

    a:link, a:visited, a:hover, a:active

    Die Reihenfolge ist glaub auch wichtig, bitte sagt mal wie das geht?


    Die Navi wird via <?php include('html_inc/steuerung.html'); ?>
    in das element <ul id="steuerung"></ul> eingebunden..

    HTML
    <li><a title="Zur Startseite" href="index.php">lorem ipsum</a></li>
    <li><a title="lorem ipsum" href="site.php">lorem ipsum</a></li>
    <li><a title="lorem ipsum" href="site1.php">lorem ipsum</a></li>
    <li><a title="lorem ipsum" href="site2.php">lorem ipsum</a></li>
    <li><a title="lorem ipsum" href="site3.php">lorem ipsum</a></li>




    Die Css sieht dabei wie folgt aus:

  • Die Pseudeklasse :visited wird aus Sicherheitsgründen nicht mehr verwendet.

    Mit HTML /CSS geht das nur, wenn du die Inhalte per JS / Ajax lädst. Normal wird die Seite aber neugeladen woraus folgt, damit geht es nicht...
    Du musst mit PHP den "aktiven" (also derzeit verwendeten) Link hervorheben (mit z.B. einer extra CSS Klasse oder ID. Außer du arbeitest ohne PHP, musst du es per Hand in jeder Seite einfügen.

    Wenn du Firebug hast, schau dir die Navi auf der Seite an (die Startseite selbst wird nicht markiert, erst wenn man die Seite tatsächlich wechselt): http://werderwichtel.com/

    Wenn du kein Firebug hast: besorg dir Firebug :P

    /P.S.:

    Hier meine Navi Funktion die ich derzeit verwende (für eine Navigation mit 3 Ebenen)

    $site ist die aktuelle Seite (deren Parameter).


    In der includierten navi.php wird ein Array gebaut (derzeit per Hand, da die Seite ohne eine Datenbank auskommen muss):

    4 Mal editiert, zuletzt von Grevas (31. Juli 2010 um 20:15)

  • Auf der Seite ist es aber viel leichter beschrieben als im Codeschnipsel von Grevas, werde aber beide Lösungen testen..

    Hier stehts ja auch, das wusste ich gar nicht?!

    Zitat

    Hierzu muss man wissen, dass a:active lediglich den Linkzustand im Moment des Anklickens mit der Maus beschreibt, und zwar nur so lange, wie mit der Maus auf den Link "gedrückt" wird.



    auf ohne-css.gehts-gar.net .. gibts-ja-fast-alles.net (nedde?):D

  • Das was dir Sejuma gepostet ist aber eben nur der CSS Teil o_O bei mir gehts auch darum, wie man rausfindet welche Seite nun aktiv ist - bei einer dynamischen Seite!... Da brauchste dich nicht wundern, wenn meins komplizierter ist.




  • Kann ich die Untermenüs auch weglassen, so etwas habe ich nicht?



    5:51Uhr: Nach langen versuchen die ganze nacht hindurch muss ich nun gleich übermüdet zur Arbeit, ich habe aber ein ganz simplem Trick vverwendet um das hinzubekommen. Einfach den A-Tag auf den entsprechenden Seiten entfernen, dann sieht man auch auf welcher seite man gerade ist. Allerdings habe ich includete Navigation(testweise entcludet:?), funktioniert, auch das Beispiel von ohne css geht gar net klappt das aber beide Methoden nicht bei includeteter Navigation:x

    Einmal editiert, zuletzt von $mysql= (2. August 2010 um 05:56)

  • Ja, das ganze funktioniert auch ohne ein Untermenü - wird ja überprüft ob die Variable dafür gesetzt ist oder nicht.

    Bei der Funktion oben wird eine id gesetzt (id="link_selected" ), das kannst du dann so stylen wie du möchtest...

    Die Funktion gibt den Inhalt auch zurück (return $content;), wird nicht direkt ausgegeben... Wenn du es sofort ausgeben willst

    PHP
    $site = $_GET['site'];
    echo create_navi($site);

    dankeschön für die nichthilfe, einfach code hinklatschen und dann nicht mehr reinschauen. ;)

    unregistriert ging es immer schneller


    Hilf dir halt mal selbst, ich bin nicht 24/7 im Forum! Ob du es glaubst oder nicht, auch ich hab an nem Sonntagabend was besseres zu tun.
    Wenn du kein PHP kannst, machs halt mit HTML only. Mehr werd ich dir jetzt auch net erklären...



  • ich habe das nun mal mit kleinen documenten zum testen local erstellt. Irgendwie ist der Link zwar aktiv aber anders als man denkt

    ich hab eine index.php



    eine seite2.php



    die includete menue.php




    und die css datei:

    Code
    #menue #aktiv a {
    color: #fff;
    background-color: #f00;
    font-weight: bold;
    }




    So sieht der aktive Link in der webseite aus, irgendwie nicht wie gewünscht. Was läuft verkehrt???

    HTML
    id="aktiv" Startseite
  • PHP
    <ul id="menue">
        <li <?php if($thisPage=="startseite") { echo "id=\"aktiv\""; } ?>>
               <a href="index.php">Startseite</a>
        </li>
        <li <?php if($thisPage=="seite2") { echo "id=\"aktiv\""; } ?>>
                <a href="seite2.php">Seite2</a>
        </li>
    </ul>
  • PHP
    <ul id="menue">
        <li <?php if($thisPage=="startseite") { echo "id=\"aktiv\""; } ?>>
               <a href="index.php">Startseite</a>
        </li>
        <li <?php if($thisPage=="seite2") { echo "id=\"aktiv\""; } ?>>
                <a href="seite2.php">Seite2</a>
        </li>
    </ul>



    Herzlichen Dank lieber Unbekannter;)