CSS:如何删除伪元素(之后,之前,…)?

我想使用一个开关在网页上的段落标签的布局。

我使用后伪元素:

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

现在我需要从页面中删除此CSS代码。

这怎么容易做到呢?

我还想补充一点:

  • 页面上已经使用了jQuery

  • 和我不想包括或删除文件包含CSS。

313019 次浏览

你需要添加一个css规则来删除后面的内容(通过课堂)..


由于一些有效的注释,一个更新

完全删除/禁用:after规则的更正确的方法是使用

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

Gillian Lo Wong回答道


原来的答案

你需要添加一个css规则,删除后面的内容(通过课堂)..

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

并将该类添加到你的p,当你想用这一行

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

一个工作示例:http://www.jsfiddle.net/G2czw/

这取决于伪选择器实际添加了什么。在你的情况下,将content设置为""将摆脱它,但如果你在设置边界或背景或其他什么,你需要明确地将这些归零。据我所知,没有一种包治百病的方法可以删除关于前后元素的所有内容,不管它是什么。

p:after {
content: none;
}

没有一个是将内容(如果指定)设置为空的正式值。

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

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

作为在Gillian的回答中提到,将none赋值给content可以解决这个问题:

p::after {
content: none;
}

注意,在CSS3中,W3C建议对伪元素使用两个冒号(::),如::before::after

MDN网络文档伪元素:

作为规则,应该使用双冒号(::)而不是单冒号 结肠(:)。这区分了伪类和伪元素。 然而,由于这种区别不存在于旧版本的 W3C规范,大多数浏览器都支持这两种语法 兼容性。注意::selection必须总是以double开头 冒号(::)。< / p >
p:after {
content: none;
}

这是一种删除:after的方法,你可以对:before做同样的事情

几分钟前也有同样的问题,只是content:none;没有工作,但添加content:none !important;display:none !important;对我有用吗

*::after {
content: none !important;
}
*::before {
content: none !important;
}