Christoph K. Rey: textmenü mit css - farben zurücksetzen

hallo

versuche ein textmenü zu erstellen. dazu als tabellenhintergrund einen horizontalen balken erstellt. dann habe ich in css spezielle classes für menü-links definiert (natürlich noch mehr angaben (wie z.b. padding) als unten aber die sind für das problem nicht relevant)

A.mmenue:link {color:#000000; background-color:#AAAAAA;}
A.mmenue:hover {color:#FF0000; background-color:#FFFFFF;}
A.mmenue:active {color:#FF0000; background-color:#FFFFFF;}
A.mmenue:visited {color:#000000; background-color:#AAAAAA;}

das ganze hätte wie folgt aussehen sollen

link: text schwarz, text-hg gleiche farbe wie balken
hover: text rot, text-hg weiss
avtive: text rot, text-hg weiss
visited: text schwarz, text-hg gleiche farbe wie balken

das ganze sah supi aus und funktionierte auch aber nur das erste mal. wenn ich ein zweites mal über einen bereits besuchten link fahre ändert sich nichts mehr.

nun die frage: wie löse ich das problem? kann ich jedesmal alles mit den linkfarben zurücksetzen (habe danach gesucht aber fand nur was von strefan münz aus dem jahr 1999 mit einem link, der nicht funktioniert (JavaScript-Eigenschaft vlinkColor (../../tecbb.htm#a13)))

oder mache ich generell einen überlegungsfehler? ich denke, ich habe schon mehrmals menüs gesehen, die die balkenfarbe beim mouseover gewechselt haben und ich bin sicher, dass einige davon auch textmenüs waren.

bin für jede hilfe sehr dankbar.

gruss christoph

  1. Hallo,

    A.mmenue:link {color:#000000; background-color:#AAAAAA;}
    A.mmenue:hover {color:#FF0000; background-color:#FFFFFF;}
    A.mmenue:active {color:#FF0000; background-color:#FFFFFF;}
    A.mmenue:visited {color:#000000; background-color:#AAAAAA;}

    Die Reihenfolge der Pseudoklassen ist vorgeschrieben :link, :visited, :hover, :active, :focus
    http://selfhtml.teamone.de/css/eigenschaften/pseudoformate.htm#link_visited_hover_active_focus

    viele Grüße

    Axel

    1. Hi,

      Hallo,

      A.mmenue:link {color:#000000; background-color:#AAAAAA;}
      A.mmenue:hover {color:#FF0000; background-color:#FFFFFF;}
      A.mmenue:active {color:#FF0000; background-color:#FFFFFF;}
      A.mmenue:visited {color:#000000; background-color:#AAAAAA;}

      Die Reihenfolge der Pseudoklassen ist vorgeschrieben :link, :visited, :hover, :active, :focus
      http://selfhtml.teamone.de/css/eigenschaften/pseudoformate.htm#link_visited_hover_active_focus

      Nein, die Reihenfolge ist nicht vorgeschrieben.

      Aber:
      Werden in gleichwertigen Selektoren identische Properties mit verschiedenen Werten belegt, wird der im zuletzt notierten Ruleset gewinnen. Die Reihenfolge hat einen Einfluß auf das dargestellte Ergebnis, aber vorgeschrieben ist sie nicht.

      Die Effekte sind von der Reihenfolge abhängig, da im obigen Beispiel alle Selektoren gleichwertig sind (je 1 Element, 1 Klasse, 1 Pseudoklasse).
      Bei einem besuchten Link wird also der hover-Effekt für die Farben nicht mehr funktionieren.

      Die von Dir angegebene Reihenfolge halte ich für suboptimal.
      Denn bei einem Link, der den Tastaturfokus hat, wird der Hover-Effekt nicht mehr (vollständig) funktionieren.

      M.E. ist diese Reihenfolge besser:
      :link
      :visited
      :focus
      :hover
      :active

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. hallo axel und andreas

        danke für eure hilfe, das mit der reihenfolge war der richtige tip. nur zur info - die reihenfolge, die bei mir richtig funktioniert (und zwar nur diese) ist

        link
        active
        visited
        focus
        hover

        also nochmals - ganz herzlichen dank.

        gruss christoph

    2. hi axel

      vielen dank für den hinweis, habe es geändert. leider ändert sich daran nichts. wenn ich die seite neu aufrufe sieht es perfekt aus. sobald ich einen link anwähle und dann von der folgeseite wieder auf zurück klicke sieht die ausgangsseite zwar wieder gut aus aber der over-effekt funktioniert nicht mehr (der link schon aber der farbeffekt nicht mehr).

      also, wenn du mir zu diesem phänomen noch einen tip hast, wäre ich dir ausserordentlich dankbar.

      gruss christoph

      1. Hi,

        vielen dank für den hinweis, habe es geändert. leider ändert sich daran nichts. wenn ich die seite neu aufrufe sieht es perfekt aus. sobald ich einen link anwähle und dann von der folgeseite wieder auf zurück klicke sieht die ausgangsseite zwar wieder gut aus aber der over-effekt funktioniert nicht mehr (der link schon aber der farbeffekt nicht mehr).
        also, wenn du mir zu diesem phänomen noch einen tip hast, wäre ich dir ausserordentlich dankbar.

        Hast Du mal den Cache Deines Browsers gelöscht? Der hat wahrscheinlich noch die alte Version drin...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      2. Hallo,

        vielen dank für den hinweis, habe es geändert. leider ändert sich daran nichts. wenn ich die seite neu aufrufe sieht es perfekt aus. sobald ich einen link anwähle und dann von der folgeseite wieder auf zurück klicke sieht die ausgangsseite zwar wieder gut aus aber der over-effekt funktioniert nicht mehr (der link schon aber der farbeffekt nicht mehr).

        also, wenn du mir zu diesem phänomen noch einen tip hast, wäre ich dir ausserordentlich dankbar.

        Ja, das habe ich auch grade gelernt (siehe MudGuard). Beim SelfHTML-Beispiel: http://selfhtml.teamone.de/css/eigenschaften/anzeige/pseudo_links.htm ist es auch so. Der Link hat nach "Zurück" noch den Focus. Gib die Reihenfolge mal so an, wie Andeas es hier: [pref:t=42556&m=232702] angibt. Oder, wenn :hover sich immer durchsetzten soll, dann :hover ganz am Ende.

        viele Grüße

        Axel