Abfrage auf CSS-Bedingung aus Header heraus

  • Folgendes:

    Ich habe in meiner Header.php eine Bedingung

    <?php
    if (is_category('1')) {echo "
    #subnav2 li a span {
    background: #FFFFFF url(httpxyz);}
    ";};

    Dadurch steure ich dass z.B. bei aktiver Kategorie 1 ein Teil der Navigationsleiste ein anderes Bild erhält.

    Nun will ich diese Bedingung erweitern nach der Art

    if (is_category('1')) and gerade kein mouseover in der Navigationsleiste nur dann{echo...

    die Navigationsleiste ist in meiner css #subnavbar

    Wenn also irgendein Teil der Navigationsleiste gerade mousover hat soll die oben genannte Bedingung nicht greifen. Gehen solche dynamischen Überwacher in der header.php überhaupt oder ist diese statisch?

    Sollte es nicht gehen: Kann ich dann alternativ in der CSS bei z.B.

    #subnav3 li a:hover span {background: #FFFFFF url(xyz.gif);}

    in diesem hover-Absatz {..} die z.B. #subnav2 li a span ansteuern? Also nach der Art wenn subnav3 hover dann dort Hintergrundbild x und gleichzeitig in subnav2 Hintergrundbild y? Wenn ja mit welcher Syntax?

    Kompliziert, ich weiß, ich hoffe ihr könnt mir trotzdem helfen :-D. Hintergrund: je nach gerade aktueller Kategorie soll die entsprechende Menüleiste hervorgehoben sein mit dem entsprechenden Bild, wenn man über andere fährt soll dieses Highlight aber verschwinden um die Navigation anzudeuten..

    Danke!

    • 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

  • Also Du kannst schon mal nicht in PHP etwas definieren, was von der aktuellen Mausposition des Nutzers abhängt. PHP wird auf dem Server ausgeführt, dann wird der HTML-Output an den Nutzer geschickt, und der fährt danach mit der Maus aufs Menü oder nicht. Die Regeln müssen also dann schon komplett fertig vorliegen.


    Zitat

    Sollte es nicht gehen: Kann ich dann alternativ in der CSS bei z.B.

    #subnav3 li a:hover span {background: #FFFFFF url(xyz.gif);}

    in diesem hover-Absatz {..} die z.B. #subnav2 li a span ansteuern? Also nach der Art wenn subnav3 hover dann dort Hintergrundbild x und gleichzeitig in subnav2 Hintergrundbild y?

    Du kannst in oben erwähnter CSS-Deklaration auf alles zugreifen, was innerhalb des "gehoverten" Bereiches liegt. Wenn #subnav2 ein Kind von #subnav3 ist, geht es.

    Code
    #subnav3 li a:hover span {
      background: #FFFFFF [URL="http://forum.wordpress-deutschland.org/lexikon/?do=showentry&item=url"]url[/URL](xyz.gif);
    }
    
    
    #subnav3 li a:hover #subnav2 li a span {
      background: #FFFFFF [URL="http://forum.wordpress-deutschland.org/lexikon/?do=showentry&item=url"]url[/URL](xyz.gif); // hier Farbe zurücksetzen
    }

    Wenn #subnav2 und #subnav3 getrennte Bereiche sind oder #subnav3 ein Kind von #subnav2 ist (was die ID wohl andeutet), wird das schwieriger. Du kannst per CSS leider nicht ein Element basierend auf einem Kind des Elementes markieren. Das würde dann z.B. per jQuery relativ simpel gehen. Um Dir da ein sinniges Beispiel sagen zu können, solltest Du aber vielleicht mal einen Ausschnitt des HTMLs des Menüs posten.

Jetzt mitmachen!

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