创建 CSS :after 使用 jQuery [重复]

Posted

技术标签:

【中文标题】创建 CSS :after 使用 jQuery [重复]【英文标题】:Creating CSS :after with jQuery [duplicate] 【发布时间】:2012-02-28 07:28:59 【问题描述】:

我需要为我的元素动态创建 CSS 样式。但是,我需要 :after 在 CSS 中,我听说你不能在 jQuery 中修改它。

这是真的吗?有没有办法解决?

【问题讨论】:

【参考方案1】:

这是真的吗?

是的。使用:after 创建的伪元素不属于 DOM,因此无法选择。

这里面还有吗?

没有。除非您在没有:after 的情况下执行此操作(使用实际元素,然后您可以选择它/将事件绑定到它)。

编辑

重新阅读您的问题后,我认为您实际上是在问是否可以将 :after 样式应用于带有 jQ​​uery 的元素。答案仍然是否定的,尽管您可以使用 addClass 向元素添加新类并为该类名称定义 :after 样式。

再次编辑

当我说“不”时,我似乎并不完全正确......请参阅@AtesGorals 回答以获得很好的解决方法。

【讨论】:

【参考方案2】:

为什么要使用 javascript 创建 css?

在 css 类中具有所需的样式,然后使用 jQuery 通过 addClass 方法应用该类。

【讨论】:

【参考方案3】:

您可以生成<style>标签并将其插入<head>

http://jsfiddle.net/PrBHF/

$("head").append($('<style>div:after  content: " World" </style>'));

【讨论】:

这不适用于所有浏览器,尤其是 Internet Explorer。 这里有替代方法:***.com/questions/311052/… @ShankarSangoli:这个答案适用于 IE8/9。由于不支持:after,它在任何较低版本中都不起作用。 关于浏览器支持:由于问题首先是关于 :after,因此浏览器支持不是问题/答案的一部分。 @ShankarSangoli 随便给我打电话,但我不再关心 Internet Explorer,因为它没有做通常在所有其他浏览器中都能正常工作的事情。尤其是旧版本。如果人们仍然使用IE6并且仍然骑自行车不戴头盔,那就让他们吧。我不在乎了。

以上是关于创建 CSS :after 使用 jQuery [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何用JQuery操作CSS伪文档元素before或after中的content

在 CSS 中更改使用 ::before 和 ::after 创建的元素的顺序

使用javascript,jQuery实现修改before,after伪类的样式(转)

CSS伪元素(:之前/:之后)的jQuery .click()事件?

css after 插入图片,怎么设置内容高度

css 伪元素::after