css:如何删除伪元素(之后,之前,...)

Tha*_*ama 207 html javascript css pseudo-element

我想在网页上使用开关来设置段落标签的布局.

我使用了后伪元素

p:after {content: url("../img/paragraph.gif");}
Run Code Online (Sandbox Code Playgroud)

现在我需要从页面中删除此css代码.如何轻松完成(页面上已经使用了jquery)?(我不想包含或删除包含css的文件)

Gil*_*ong 394

p:after {
   content: none;
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • @MDTech.us_MAN 是的,您可以执行“display:none”,但它仍将保留在 DOM 树中。设置 content:none 甚至不把它放在 DOM 树中(你可以通过 Chrome 的 DOM 检查器检查它) (3认同)
  • 这实际上是否清除了其他与内容相关的样式,因此即使你设置了填充和边距,它们也会变得惰性? (2认同)
  • 你不能只做`display: none`吗? (2认同)

Gab*_*oli 25

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


一个更新由于一些有效的意见.

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

p.no-after:after{content:none;}
Run Code Online (Sandbox Code Playgroud)

正如Gillian Lo Wong回答的那样.


原始答案

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

p.no-after:after{content:"";}
Run Code Online (Sandbox Code Playgroud)

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

$('p').addClass('no-after'); // replace the p selector with what you need...
Run Code Online (Sandbox Code Playgroud)

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


Hen*_*son 16

$('p:after').css('display','none');
Run Code Online (Sandbox Code Playgroud)


sim*_*eco 8

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

p::after {
   content: none;
}
Run Code Online (Sandbox Code Playgroud)

请注意,在CSS3,W3C推荐使用两个冒号(::)用于伪元素之前之后.

来自MDN web doc上的伪元素

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


小智 7

*::after {
   content: none !important;
}
*::before {
   content: none !important;
}
Run Code Online (Sandbox Code Playgroud)


dre*_*www 5

这取决于假选择者实际添加的内容.在你的情况下,设置内容""将摆脱它,但如果你正在设置边框或背景或其他什么,你需要专门将其归零.据我所知,无论是什么原因,都无法解决前后元素的所有问题.