繁体   English   中英

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

[英]CSS: How to remove pseudo elements (after, before,…)?

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

我使用 after 伪元素:

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

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

如何轻松做到这一点?

我想补充一点:

  • 页面上已经使用了jQuery

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

p:after {
   content: none;
}

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

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

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


由于一些有效评论而更新

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

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

正如阿娇罗王回答的那样


原答案

您需要添加一个 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/

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

正如Gillian's answer 中提到的,将none分配给content解决了这个问题:

p::after {
   content: none;
}

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

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

注:作为一项规则,双冒号( :: )应该被用来代替单个冒号( : )。 这将伪类与伪元素区分开来。 然而,由于旧版本的 W3C 规范中不存在这种区别,大多数浏览器为了兼容性而支持这两种语法。 请注意::selection必须始终以双冒号 ( :: ) 开头。

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

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

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

p:after {
  content: none;
}

这是一种删除:after ,您可以对:before执行相同的操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM