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)
p:after {
content: none;
}
none est la valeur officielle permettant de définir le contenu, s'il est spécifié, sur rien.
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/
$('p:after').css('display','none');
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 (::
).
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.