Eine Klasse oder ein Element ausklammern

  • Hallo,


    ich weiß, dass man irgendwie eine ID, Klasse oder sonstwas ausklammern kann.
    Also etwa
    <li> Lalalalal</li>
    <li>tatatat</li>
    <li class="abc">solala</li>


    Wenn ich jetzt möchte, dass beim Hovern der HIntergrund blau wird,
    aber nicht der von li.abc, wie mache ich das dann?

  • Dafür gibt es die CSS-Pseudoklasse :not().
    Ind deinem Beispiel müsste das dann ungefähr so aussehen:

    Code
    1. li:not(.abc):hover {
    2. background-color: blue;
    3. }


    Das funktioniert in allen modernen Browsern, wie die IE-Unterstützung aussieht, kann ich dir nicht sagen. Auf jeden Fall funktioniert :not nicht in IE <= 7.

  • Ich rate dir von :not() ab, da er erst ab IE 9 unterstütz wird und wenigstens auf 8 muss einfach Rücksicht genommen werden (7 theoretisch auch noch, den 6er kann man in die Ecke werfen^^)


    Ich emfpehle eher sowas (stark vereinfacht):

    Ist zwar etwas umständlicher, aber wie ich finde übersichtlicher und auf jedenfall mit mehr Browsern kompatibel^^

  • Gut, wenns in IE8 nicht geht, ist das natürlich schlecht.


    Kann man aber für Sachen benutzen, die nicht unbedingt nötig sind, wo man also auf vollständige Browserunterstützung verzichten kann, da :not() einem viel Schreibarbeit ersparen kann.

  • Die 10% kann man getrost ignorieren :wink:


    Um jetzt mal wieder ernst zu werden:
    Muss man sich halt vorher überlegen, ob es Sachen sind, auf die auch verzichtet werden kann, oder ob ohne die das komplette Design nicht mehr hinhaut.
    Es werden ja schließlich auch schon viele runde Ecken mit CSS gemacht, obwohl die der IE8 auch nicht kennt.

  • Die Hintergrundfarbe beim hovern zu wechseln kann/hat aber vllt auch den Grund, die Lesbarkeit zu gewährleisten?
    Runde Ecken sind ein Witz und haben kaum einen tieferen Sinn.