Y a-t-il quelque chose comme! = (Différent) dans CSS? par exemple, j'ai le code suivant:
input {
...
...
}
mais pour certaines entrées, je dois annuler cela. Je voudrais faire cela en ajoutant la classe "reset" à la balise d'entrée, par exemple
<input class="reset" ... />
puis ignorez simplement cette balise de CSS.
Comment puis-je faire ça?
La seule façon dont je peux voir serait d'ajouter une classe à la balise d'entrée et de réécrire le CSS comme suit:
input.mod {
...
...
}
html
css
css-selectors
Alex Ivasyuv
la source
la source
Réponses:
Dans CSS3, vous pouvez utiliser le
:not()
filtre,mais tous les navigateurs ne prennent pas encore totalement en charge CSS3, alors assurez-vous de savoir ce que vous faites, cequi est maintenant pris en charge par tous les principaux navigateurs (et ce depuis un certain temps; c'est une vieille réponse ...).Exemple:
et le CSS
Remarque: cette solution de contournement ne devrait plus être nécessaire; Je le laisse ici pour le contexte.
Si vous ne souhaitez pas utiliser CSS3, vous pouvez définir le style sur tous les éléments, puis le réinitialiser avec une classe.
la source
:not()
sélecteurs:input:not(.avoidme):not(.avoidmetoo)
évitera les éléments avec l'une ou l'autre classe,input:not(.avoidme.andme)
évitera les éléments avec les deux classes.:not(.this.that) { }
travail peut, mais si vous faites quelque chose comme:not(.this, .that) { }
vous allez tomber vers le bas, vous devez les daisy chain tels que::not(.this):not(.that)
. Je comprends que vous le savez probablement, j'essaie d'aider les futurs lecteurs :):not()
.Vous pouvez également le faire en "annulant" les modifications de la classe de réinitialisation uniquement en CSS.
la source
CSS3 l'a fait
:not()
, mais il n'est pas encore implémenté dans tous les navigateurs. Cependant, il est implémenté dans l'aperçu de la plate-forme IE9.http://www.w3.org/TR/css3-selectors/#negation
En attendant, vous devrez vous en tenir aux méthodes à l'ancienne.
la source
Vous pouvez également aborder cela en ciblant un attribut comme celui-ci:
input:not([type=checkbox]){ width:100%; }
Dans ce cas, toutes les entrées qui ne sont pas de type «case à cocher» auront une largeur de 100%.
la source
Intéressant vient d'essayer ceci pour sélectionner l'élément DOM en utilisant JQuery et cela fonctionne! :)
Cette page contient 168 divs qui n'ont pas de classe 'comment-copy'
la source
[attr!="value"]
est un sélecteur jQuery uniquement api.jquery.com/attribute-not-equal-selectorau lieu de class = "reset", vous pouvez inverser la logique en ayant class = "valid". Vous pouvez l'ajouter par défaut et supprimer la classe pour réinitialiser le style.
Donc à partir de votre exemple et de celui de Tomas
et
la source