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


Answers:


454
p:after {
   content: none;
}

none是将内容(如果指定)设置为的官方值。

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


2
这是否真的清除了其他与内容相关的样式,因此即使您设置了填充和边距,它们也会变得惰性?
瑞安·威廉姆斯

这应该是公认的答案。使用内容:”; 尝试覆盖先前设置的content属性时可能会导致意外结果。
罗伊·米尔德

你不能做display: none吗?
MDTech.us_MAN

@ MDTech.us_MAN是的,您可以执行“ display:none”,但仍将保留在DOM树中。设置内容:甚至都没有将其放在DOM树中(您可以通过Chrome的DOM检查器对其进行检查)
kumarharsh

29

您需要添加一个css规则,以删除after内容(通过一个类)。


由于一些有效的评论而进行的更新

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

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

正如罗兰(Gillian Lo Wong)回答


原始答案

您需要添加一个css规则,以删除after内容(通过一个类)。

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

并在需要时将该类添加到您的p行中

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

一个有效的示例,位于:http : //www.jsfiddle.net/G2czw/



8

由于在阿娇的答复中提到,分配nonecontent解决了这个问题:

p::after {
   content: none;
}

请注意,在CSS3中W3C建议::伪元素使用两个冒号(),例如beforeafter

来自有关伪元素MDN网络文档

注意:通常,::应使用双冒号()而不是单个冒号(:)。这将伪类与伪元素区分开。但是,由于在W3C规范的较早版本中没有这种区别,因此大多数浏览器出于兼容性的考虑都支持这两种语法。请注意,::selection必须始终以双冒号(::)开头。


5

这取决于伪选择器实际添加的内容。在您的情况下,将内容设置为""会摆脱它,但是如果您设置边框或背景或其他内容,则需要将它们专门清零。据我所知,没有任何一种万能药可以清除之前/之后元素的所有内容,无论它是什么。


0

有一个同样的问题,几分钟前,只是content:none;没有做工作,但增加content:none !important;,并display:none !important;为我工作


-3
p:after {
  content: none;
}

这是一种删除的方法:after,您可以对:before


1
这个答案似乎重申了与几年前当前接受的解决方案相同的解决方案。如果您觉得有什么要补充的,请留下它作为对原始答案的评论。另外,如果您有不同的解决方案,请解释为什么不同(甚至可能更好)。
MTCoster
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.