Je voudrais écrire une règle de sélection CSS qui sélectionne tous les éléments qui n'ont pas une certaine classe. Par exemple, étant donné le code HTML suivant:
<html class="printable">
<body class="printable">
<h1 class="printable">Example</h1>
<nav>
<!-- Some menu links... -->
</nav>
<a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
<p class="printable">
This page is super interresting and you should print it!
</p>
</body>
</html>
Je voudrais écrire un sélecteur qui sélectionne tous les éléments qui n'ont pas la classe "imprimable" qui, dans ce cas, sont les éléments nav et a .
Est-ce possible?
REMARQUE: dans le HTML réel où j'aimerais utiliser cela, il y aura beaucoup plus d'éléments qui n'ont pas la classe "imprimable" que moi (je réalise que c'est l'inverse dans l'exemple ci-dessus).
la source
:not()
à l'écran, il ne le supportera pas non plus en version imprimée.:not()
ne prend qu'un simple sélecteur ce qui signifie qu'il ne peut pas contenir de sélecteurs imbriqués comme:not(div .printable)
- voir Syntaxe du sélecteur W3C:not(.active)
règle peuvent simplement avoir été remplacées par des propriétés de règle (s) avec une priorité plus élevée.:not()
est celle de son argumentation, qui signifie:not(div)
est également spécifique àdiv
,:not(.cls)
à.cls
et:not(#id)
à#id
.En fait, cela sélectionnera tout ce qui n'a pas de classe css (
class="css-selector"
).J'ai fait une démo jsfiddle
Est-ce pris en charge? Oui: Caniuse.com (consulté le 02 janvier 2020) :
Édition drôle, j'étais googler pour l'opposé de: non. Négation CSS?
la source
La
:not
pseudo-classe de négationVous pouvez utiliser
:not
pour exclure tout sous-ensemble d'éléments correspondants, ordonné comme vous le feriez pour des sélecteurs CSS normaux.Exemple simple: exclure par classe
div:not(.class)
Sélectionnerait tous les
div
éléments sans la classe.class
Exemple complexe: exclusion par type / hiérarchie
:not(div) > div
Sélectionnerait tous les
div
éléments qui ne sont pas des enfants d'un autrediv
Exemple complexe: enchaîner des pseudo-sélecteurs
À l'exception notable de l'impossibilité de chaîner / imbriquer des
:not
sélecteurs et des pseudo-éléments, vous pouvez les utiliser conjointement avec d'autres pseudo-sélecteurs.Prise en charge du navigateur , etc.
:not
est un sélecteur de niveau CSS3 , la principale exception en termes de support est qu'il s'agit d' IE9 +La spécification soulève également un point intéressant:
la source
:not(div) > div
ne fonctionnerait qu'avec des parents directs. Et les autres grands-pères?Je pense que cela devrait fonctionner:
De la réponse "sélecteur css négatif" .
la source
Tout comme pour contribuer que les réponses ci-dessus de: not () peuvent être très efficaces sous des formes angulaires, plutôt que de créer des effets ou d'ajuster la vue / DOM,
Garantit qu'au chargement de votre page, les champs de saisie ne montreront que les invalides (bordures ou arrière-plans rouges, etc.) s'ils ont des données ajoutées (c'est-à-dire qu'elles ne sont plus vierges) mais ne sont pas valides.
la source
Exemple
// Opacity 0.6 all "section-" mais pas "section-name"
la source
Vous pouvez utiliser le
:not(.class)
sélecteur comme mentionné précédemment.Si vous vous souciez de la compatibilité d'Internet Explorer, je vous recommande d'utiliser http://selectivizr.com/ .
Mais n'oubliez pas de l'exécuter sous apache, sinon vous ne verrez pas l'effet.
la source
Utilisation de la
:not()
pseudo classe:Pour tout sélectionner sauf un certain élément (ou éléments). Nous pouvons utiliser la
:not()
pseudo-classe CSS . La:not()
pseudo-classe nécessite unCSS
sélecteur comme argument. Le sélecteur appliquera les styles à tous les éléments à l'exception des éléments qui sont spécifiés comme argument.Exemples:
Nous pouvons déjà voir la puissance de cette pseudo-classe, elle nous permet d'affiner commodément nos sélecteurs en excluant certains éléments. De plus, cette pseudo classe augmente la spécificité du sélecteur . Par exemple:
la source
Si vous voulez qu'un menu de classe spécifique ait un CSS spécifique si une classe manquante est connectée :
la source
Comme d'autres l'ont dit, vous dites simplement: non (.class). Pour les sélecteurs CSS, je recommande de visiter ce lien, cela a été très utile tout au long de mon voyage: https://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048
La pseudo-classe de négation est particulièrement utile. Disons que je veux sélectionner toutes les divs, sauf celle qui a un id de conteneur. L'extrait ci-dessus gérera parfaitement cette tâche.
Ou, si je voulais sélectionner chaque élément (non conseillé) à l'exception des balises de paragraphe, nous pourrions faire:
la source