css: how to remove pseudo elements (after, before, …)

css: how to remove pseudo elements (after, before, …)

I would like to use a switch for the layout of paragraph tags on a webpage.
I use the after pseudoelement
p:after {content: url(“../img/paragraph.gif”);}

Now i need to remove this css code from the page. How can this be done easily (jquery is already used on the page)? (i do not want to include or remove files containing css)

Solutions/Answers:

Solution 1:

p:after {
   content: none;
}

none is the official value to set the content, if specified, to nothing.

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

Solution 2:

You need to add a css rule that removes the after content (through a class)..


An update due to some valid comments.

The more correct way to completely remove/disable the :after rule is to use

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

as Gillian Lo Wong answered.


Original answer

You need to add a css rule that removes the after content (through a class)..

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

Solution 3:

$('p:after').css('display','none');

Solution 4:

As mentioned in Gillian’s answer, assigning none to content solves the problem:

p::after {
   content: none;
}

Note that in CSS3, W3C recommended to use two colons (::) for pseudo-elements like before or after.

From the MDN web doc on pseudo-elements

Note: As a rule, double colons (::) should be used instead of a single
colon (:). This distinguishes pseudo-classes from pseudo-elements.
However, since this distinction was not present in older versions of
the W3C spec, most browsers support both syntaxes for the sake of
compatibility. Note that ::selection must always start with double
colons (::).

Solution 5:

This depends on what’s actually being added by the pseudoselectors. In your situation, setting content to "" will get rid of it, but if you’re setting borders or backgrounds or whatever, you need to zero those out specifically. As far as I know, there’s no one cure-all for removing everything about a before/after element regardless of what it is.

Related:  Avoiding problems with JavaScript's weird decimal calculations

Solution 6:

p:after {
  content: none;
}

This is a way to remove the :after and you can do the same for :before