web-dev-qa-db-fra.com

css: comment supprimer les pseudo-éléments (après, avant, ...)

Je voudrais utiliser un commutateur pour la mise en page des balises de paragraphe sur une page Web.

J'utilise le pseudoélément d'après

p:after {content: url("../img/paragraph.gif");}

Maintenant, je dois supprimer ce code CSS de la page. Comment cela peut-il être fait facilement (jquery est déjà utilisé sur la page)? (Je ne veux pas inclure ou supprimer des fichiers contenant du css)

201
Thariama
p:after {
   content: none;
}

none est la valeur officielle permettant de définir le contenu, s'il est spécifié, sur rien.

http://www.w3schools.com/cssref/pr_gen_content.asp

382
Gillian Lo Wong

Vous devez ajouter une règle css qui supprime le contenu après ( via une classe ) ..


Une mise à jour en raison de commentaires valides.

La manière la plus correcte de supprimer/désactiver complètement la règle :after consiste à utiliser

p.no-after:after{content:none;}

comme Gillian Lo Wong a répond .


réponse originale

Vous devez ajouter une règle css qui supprime le contenu après ( via une classe ) ..

p.no-after:after{content:"";}

et ajoutez cette classe à votre p quand vous voulez avec cette ligne

$('p').addClass('no-after'); // replace the p selector with what you need...

un exemple de travail à: http://www.jsfiddle.net/G2czw/

25
Gabriele Petrioli
$('p:after').css('display','none');
17

Comme mentionné dans la réponse de Gillian , assigner none à content résout le problème:

p::after {
   content: none;
}

Notez que dans CSS3 , , W3C recommandait d'utiliser deux points (::) pour pseudo-éléments comme avant ou après .

Depuis le Web doc MDN sur les pseudo-éléments

Remarque: En règle générale, les doubles points (::) doivent être utilisés à la place d'un simple deux-points (:). Cela distingue les pseudo-classes des pseudo-éléments. Toutefois, cette distinction n'étant pas présente dans les anciennes versions de la spécification W3C, la plupart des navigateurs prennent en charge les deux syntaxes dans un souci de compatibilité. Notez que ::selection doit toujours commencer par un double point (::).

8
simhumileco

Cela dépend de ce qui est réellement ajouté par les pseudosélecteurs. Dans votre situation, définir le contenu sur "" le supprimera, mais si vous définissez des bordures, des arrière-plans ou autre chose, vous devez les supprimer spécifiquement. Autant que je sache, il n'y a pas de solution miracle pour tout supprimer d'un élément avant/après, peu importe ce que c'est.

5
drewww