289

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

我使用 after 伪元素:

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

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

这怎么能轻松完成?

我想补充一点:

  • 页面上已经使用了 jQuery

  • 而且我不想包含或删除包含 CSS 的文件。

4

8 回答 8

553
p:after {
   content: none;
}

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

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

于 2013-09-11T08:20:13.483 回答
33

您需要添加一个 css 规则来删除之后的内容(通过一个类)..


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

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

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

正如阿娇罗王回答的那样。


原始答案

您需要添加一个 css 规则来删除之后的内容(通过一个类)..

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

p并在您想要使用此行时 将该类添加到您的

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

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

于 2010-06-10T08:25:11.137 回答
17
$('p:after').css('display','none');
于 2013-11-20T17:50:20.363 回答
13

正如Gillian 的回答中提到的,分配nonecontent解决了这个问题:

p::after {
   content: none;
}

请注意,在CSS3中,W3C建议使用两个冒号 ( ::) 来表示类似or的伪元素::before::after

来自MDN web doc on Pseudo-elements

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

于 2017-04-03T12:31:04.167 回答
5

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

于 2013-05-22T21:20:56.553 回答
3

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

于 2020-09-12T21:03:10.993 回答
0

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

于 2019-09-05T13:21:03.543 回答
-4
p:after {
  content: none;
}

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

于 2018-01-18T11:56:43.353 回答