Gibt es so etwas wie! = (Nicht gleich) in CSS? zB habe ich folgenden Code:
input {
...
...
}
aber für einige Eingaben muss ich dies aufheben. Ich möchte dies tun, indem ich dem Eingabe-Tag die Klasse "reset" hinzufüge, z
<input class="reset" ... />
und überspringen Sie dann einfach dieses Tag aus CSS.
Wie kann ich das machen?
Die einzige Möglichkeit, die ich sehen kann, besteht darin, dem Eingabe-Tag eine Klasse hinzuzufügen und das CSS wie folgt neu zu schreiben:
input.mod {
...
...
}
html
css
css-selectors
Alex Ivasyuv
quelle
quelle
Antworten:
In CSS3 können Sie den
:not()
Filter verwenden,aber noch nicht alle Browser unterstützen CSS3 vollständig. Stellen Sie daher sicher, dass Sie wissen, was Sie tun,was jetzt von allen gängigen Browsern unterstützt wird (und das schon seit einiger Zeit; dies ist eine alte Antwort ...).Beispiel:
und das CSS
Hinweis: Diese Problemumgehung sollte nicht mehr erforderlich sein. Ich lasse es hier für den Kontext.
Wenn Sie CSS3 nicht verwenden möchten, können Sie den Stil für alle Elemente festlegen und ihn dann mit einer Klasse zurücksetzen.
quelle
:not()
Selektoren verketten:input:not(.avoidme):not(.avoidmetoo)
Vermeidet Elemente mit beiden Klassen,input:not(.avoidme.andme)
vermeidet Elemente mit beiden Klassen.:not(.this.that) { }
KANN funktionieren, aber wenn Sie etwas tun, wie:not(.this, .that) { }
Sie hinfallen, müssen Sie sie wie folgt verketten ::not(.this):not(.that)
. Ich verstehe, dass Sie das wahrscheinlich wissen, ich versuche zukünftigen Lesern zu helfen :):not()
.Sie können dies auch tun, indem Sie die Änderungen an der Rücksetzklasse nur in CSS zurücksetzen.
quelle
CSS3 hat
:not()
, aber es ist noch nicht in allen Browsern implementiert. Es ist jedoch in der IE9-Plattformvorschau implementiert.http://www.w3.org/TR/css3-selectors/#negation
In der Zwischenzeit müssen Sie sich an die altmodischen Methoden halten.
quelle
Sie können dies auch erreichen, indem Sie auf ein Attribut wie das folgende abzielen:
input:not([type=checkbox]){ width:100%; }
In diesem Fall haben alle Eingaben, die nicht vom Typ "Kontrollkästchen" sind, eine Breite von 100%.
quelle
Interessanterweise habe ich dies gerade für die Auswahl des DOM-Elements mit JQuery versucht und es funktioniert! :) :)
Diese Seite hat 168 Divs, die keine Klasse 'Kommentar-Kopie' haben.
quelle
[attr!="value"]
ist ein jQuery-only- Selektor api.jquery.com/attribute-not-equal-selectorAnstelle von class = "reset" können Sie die Logik umkehren, indem Sie class = "valid" haben. Sie können dies standardmäßig hinzufügen und die Klasse entfernen, um den Stil zurückzusetzen.
Also aus deinem Beispiel und Tomas '
und
quelle