[英]CSS: How to remove pseudo elements (after, before,…)?
我想使用一个开关来布局网页上的段落标签。
我使用 after 伪元素:
p:after {content: url("../img/paragraph.gif");}
现在我需要从页面中删除这个 CSS 代码。
如何轻松做到这一点?
我想补充一点:
页面上已经使用了jQuery
我不想包含或删除包含 CSS 的文件。
p:after {
content: none;
}
none是将内容(如果指定)设置为空的官方值。
您需要添加一个 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
等伪元素使用两个冒号 ( ::
:)。
注:作为一项规则,双冒号(
::
)应该被用来代替单个冒号(:
)。 这将伪类与伪元素区分开来。 然而,由于旧版本的 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.