Navigation mit PHP

  1. alexkiener

    alexkiener Thread StarterMacUser Mitglied

    Mitglied seit:
    18.05.2005
    Beiträge:
    21
    Zustimmungen:
    0
    Hi Leute,

    hab folgendes Problem.

    Ich habe eine Navigation mit 7 Kategorien, die CSS basiert sind.
    Das heisst, jede kategorie hat ein BG image, und wenn man mit der Maus drüber fährt ändert sich das IMG. Das hab ich mit klassen in der css so definiert. Nun möchte ich aber ein active zustand definieren, der wieder ein anderes Bild in den Hintergrund legt... geht mit CSS ja nicht wie ich in einem Thread gelesen habe.

    Da man aber seine css datei auch als php speichern kann.. zb. style.css wird zu style.php und er interpretiert die anweisungen genau so... hat aber den entscheidenden vorteil, das ich nun auch eine php abfrage in die style.php schreiben kann womit ich dann den einzelnen kategorien per php abfrage den active zustand geben kann mit nem anderen Image.

    Nun die Frage: Wie geht das ? :)

    wie muss so eine PHP abfrage aussehen...

    gruß und Danke,

    Alex
     
    alexkiener, 16.06.2005
  2. dms

    dms

    In der CSS-Datei macht eine Abfrage eigentlich keinen Sinn, wenn ich Dich richtig verstanden habe. Ausserdem würde damit ein grosser Vorteil von CSS verloren gehen, nämlich dass das komplette Design nur einmal geladen werden muss. Wenn die Style-Definitionen sich bei jedem Seitenaufruf ändern muss die Datei auch jedesmal angefordert werden.

    Die einfachste Möglichkeit ist es das Menü dynamisch zu machen und je nach Zustand eine andere Klasse zuzuweisen.

    So in der Art:
    Code:
    if($this->href==$url)
       $this->class="active";
    else
       $this->class="normal";
     
  3. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    alexkiener:
    Sorry, da ist PHP das falsche Werkzeug! PHP erstellt ja nur HTML-Code ( der nat auch CSS enthalten kann) und schicktd as zum Client. Dort kommt nie PHP an. Somit laufen auch keine PHP-Programme beim Client. PHP läuft nur Serverseitig. Von Mouse-Aktionen der User bekommt es nichts mit. Da ist Javascript das Mittel der Wahl.

    Für die Gestaltung xhtml/css
    Für dynamischen Content PHP
    Für Client-Aktionen (Events wie OnMouseOver,...) Javascript

    Nat. kannst Du das alles in eine PHP-Datei packen, die printed dann quasi Deine Webseite mit dem Javascript-Code für die Events und mixed das ganze mit dem Content und Deiner CSS-Datei.
     
    wegus, 16.06.2005
  4. msslovi0

    msslovi0MacUser Mitglied

    Mitglied seit:
    20.03.2005
    Beiträge:
    2.714
    Zustimmungen:
    115
    Gewisse Events bei mouseOver lassen sich auch über die css-Pseudoklasse :hover abfackeln. Und um den aktuell ausgewählten Navigationspunkt wieder mit einer anderen Formatierung zu versehen kann man es genau so machen, wie dms schon geschrieben hat.

    Javascript ist dafür mehr als unnötig.

    Matt
     
    msslovi0, 16.06.2005
  5. Jakob

    JakobMacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    21
    Da war doch mal ein Artikel bei alistapart… Aja… hier!. Schlägt im Grunde sowas wie dms vor aber veranschaulicht es halt noch nen bisschen. Die Ausführung finde ich nicht ganz so gelungen, aber wenn Du den Artikel gelesen hast, kannst Du's besser.

    JavaScript und damit das Ein- und Auslesen von Cookies, in welchem Bereich man ist, ist nur nötig, falls Du keine PHP-Dateien erstellen kannst. Hatte mal das Problem mit einem Kunden, der das mit seinem Programm bearbeiten wollte und das/er nix mit PHP anfangen konnte. Aber nur Notlösung.
     
    Jakob, 16.06.2005
  6. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    @Matt&Jakob: Hey das ist mir neu :D das muß ich mir in ner ruhigen Minute mal angucken! Danke!!!

    Gruß Karsten
     
    wegus, 16.06.2005
  7. Jakob

    JakobMacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    21
    Ist im Grunde nix großes.
    Ich hab viele meiner Seiten mit header und footer.php,
    der Quelltext sieht dann so aus:

    PHP:
    $kategorie="Unternehmen";
    $titel="Über uns";
    include(
    "header.php"); ?>
    <p>Bla text…
    Im header, wo auch das Menü drin steht kannst Du dann einfach abfragen, welche Kategorie es ist und die jeweilige Aktion dann ablaufen lassen.
     
    Jakob, 16.06.2005
  8. maceis

    maceisMacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    Das überrascht mich, da man andere "Eigenschaften" von Links (z. B. Hintergrundfarbe, Schriftgröße etc.) durchaus auch für den Zustand "active" steuern kann.
    Wichtig ist dabei allerdings die Reihenfolge der Definition in der CSS Datei (Eselsbrücke: love-hate).
    Mit BG-Images habe ich das noch nicht getestet, mit anderen Eigenschaften funktioniert es tadellos.
     
    maceis, 17.06.2005
  9. dms

    dms

    Die Pseudoklasse :active gillt jedoch nur solange kein Seitenwechsel geschieht. Ist also nur bei einer Navigation innerhalb eines Framesets zu gebrauchen.
     
  10. Jakob

    JakobMacUser Mitglied

    Mitglied seit:
    05.01.2004
    Beiträge:
    1.067
    Zustimmungen:
    21
    Und das auch nur auf DOSen, oder? Bei mir bleibt der :active state nur, solang die Maus draufklickt.
     
    Jakob, 18.06.2005
Die Seite wird geladen...
Ähnliche Themen - Navigation PHP
  1. mampfi
    Antworten:
    7
    Aufrufe:
    275
  2. simusch
    Antworten:
    2
    Aufrufe:
    188
    simusch
    04.05.2017
  3. Saugkraft
    Antworten:
    27
    Aufrufe:
    1.615
  4. Nielz
    Antworten:
    2
    Aufrufe:
    556