Navigationsleiste - bei aktivität markiert

  • Ich habe eine menüleiste mit HTML als Liste definiert, und mit CSS dann den Style formatiert. Wenn ich aus der Navigation einen Punkt anwähle, möchte ich das der Markiert bleibt. mir ist schon klar das ich das bei css mit a:active hin bekomme. ich habe ja aber zu dem punkt mehrere unterseiten. und wen ich dann mit der maus woanders klicke ist die markierung weg. kann ich mit einem php script sagen, wenn diese oder / und diese seite geöffnet ist markiere das. oder so? muss ich dazu die navigation komplett als PHP umschreiben?

  • Moin!

    Du muß die Navigation auf PHP-Umstellen.

    Alternative: JavaScript.

    Ich hab mal für verschiedene Dinge eine ganz einfache Demo gemacht, schau es dir einfach an: http://ronald.ro.ohost.de/forum-hilfe/iframedemo/

    Es ging dabei eigentlich um das teilweise Überlagern eines I-Frame mit einer Grafik, daber das "auf welcher Seite bin ich"-Style ist da auch mit drinnen. Einfach mal auf die Links innerhalb des I-Frame klicken.

    G.a.d.M.

    Ronald

  • ja genau sowas meine ich ... Danke. habe als belohnung dein werbelayer auch länger als 5 sekunden aktiv gelassen ;)

  • Das ist nicht mein Werbelayer, den blendet Ohost ein.
    Ich habe den Webspace dort nur zum Testen, bzw. wenn ich Usern hier helfe um Beispiele zu hosten.

    Meine 'richtigen' Seiten sind alle werbefrei, ich will mir den Webspace dort nur nicht so zumüllen ;)

    G.a.d.M.

    Ronald

  • So bin zu hause und habe es mir mal angeschaut. das ist zwar genau der effekt den ich haben wollte, aber ungerne alls javascript. ich habe auch schon mal das ganze als php version gesehen das dann die css angabe angesprochen hat wenn das jeweilige dokunt geöffnet war. da war auch irgendwas mit "$Request" oder "$get".

  • PHP hat aber immer zur Folge, daß du bei jedem Seitenwechsel auch immer die Navigation neu laden mußt, da PHP nur auf dem Server ausgeführt wird.
    Wenn du das willst -> einfach dem entsprechenden Link ein anderes Style zuweisen.

    G.a.d.M.

    Ronald

  • Ich habe mir auch schon einen anderen trick überlegt. ich lege einfach mit css ein absolutes DIV-Element für jede Seite fest was ich dann hinter den jeweiligen navigationspunkt lege. das müsste ja auch gehen. will ja nur das es markiert ist.

  • Verstanden habe ich das zwar nicht, bin aber viel mehr gespannt, wie du das denn beeinflussen willst, ohne Javascript und ohne die Navigation neu zu laden?

    Ich hoffe mal du wirst (von deinem Scheitern ??? ) berichten *fg*

    G.a.d.M.

    Ronald

  • wieso ich kann doch elemente, objekte und so "absolute" setzten. es ist somit möglich mehrere objekte aufeinander zu legen. somit lege ich einfach eine farbigen kasten hinter dem navigationspunkt was ich in der jeweiligen themenseite definieren muss.

  • Zitat von meikschmidt

    somit lege ich einfach eine farbigen kasten hinter dem navigationspunkt was ich in der jeweiligen themenseite definieren muss.

    Vom Pronuip her war mir das schon klar - die Frage ist nur, wie?

    Du willst die Navigation nicht nei laden, asli scheinst du mit (I)Frames zu arbeiten. Ohne Javascript kommts du aber aus dem (I)Frame nicht raus.

    Ich bin immer noch gespannt (will auch was lernen ;-))

  • in prinzip lädt die navigation doch immer neu ohne frames oder? ( es sei denn man verwendet ajax ) meine seiten sind alle mit "*.php" geschrieben. "kopzeile", "fusszeile" und "navigation" sind jeweils einmal vorhanden und ist auf jeder seite als "*.inc.php" includet. lädt dann die navigation sowieso nicht noch mal bei anderen seiten aufrufen? bzw vergleicht den Cache-Inhalt zum vergleich?

  • Wenn es includete PHP-Seiten sind, dann werden die immer neu geladen.
    Ein Vergleich mit dem Cache kann bei PHP-Seiten nicht erfolgen, da die Seiten auf dem Server zusammengestellt werden und der Browser vorher nicht sehen kann, was das PHP-Script hinein packt. Aus diesem Gund laden PHP-Seiten immer vom Server und nicht aus dem Browsercache.

    Unter diesen Umständen kannst das Problem aber wahrscheinlich einfacher lösen, als mit einer absoluten Positionierung - das kommt auf dein navi.inc.php an: wenn es kein starres HTML ist, sondern die Navigation zusammenbaut, dann kannst du doch ganz einfach für den als aktiviert anzuzeigenden Link ein anderes Style benutzen.

    Nur mal so als Anregung ....

    G.a.d.M.

    Ronald

  • ja und das weiß ich aber nicht wie das funktioniert. mit css schon. die navigation ist ja nur einmal für alle seiten vorhanden. warscheinlich denke ich da einfach zu kompliziert ...

  • habe es, ohne scripte ohne php. wenn du jetzt auf meiner page ( in der signatur ist ja das "www" button, und dann mal auf fotos gehst, und dann weiter auf die unterrubrik, und weiter auf einzelne fotos, bleibt rechts die navigation markiert. das realisiere ich indem ich eine ccs anweisung für jede seite setzen musste ( alle anderen css anwesiungen ist natürlich in eine externe datei ausgelagert ) die sagt, diesen listenpunkt mit einer hintergrundfarbe definieren.

    quasi sieht das so für die Foto-Hauptseite aus

    die navigationsspalte so:

    die haupt-css-datei wird durch die kopzeile importiert.

    so habe ich das jetzt gelöst.