我需要动态创建元素的CSS样式。然而,我需要在CSS中使用:after伪类,并听说jQuery无法修改它。
这是真的吗?有没有什么办法绕过去?
您可以生成一个<style>
标签并将其插入到<head>
中:
$("head").append($('<style>div:after { content: " World" }</style>'));
为什么要使用JavaScript创建CSS?
将所需的样式放入CSS类中,然后使用jQuery的addClass
方法应用该类。
这是真的吗?
是的。使用 :after
创建的伪元素不是DOM的一部分,因此无法被选择。
有没有办法绕过这个问题?
没有。除非你不使用 :after
(使用一个实际的元素,然后就可以选择它/绑定事件)。
编辑
重新阅读了您的问题后,我认为您实际上想知道是否可以使用jQuery将 :after
样式应用于元素。答案仍然是不行的,尽管您可以使用 addClass
将新类添加到元素中,并为该类名称定义 :after
样式。
再次编辑
当我说“不行”时,似乎我并不完全正确...请参见 @AtesGorals 的回答,那是一个很好的解决方法。
:after
,它在任何更低版本中都无法工作。 - thirtydot:after
,因此浏览器支持并不是问题/答案的一部分。 - Ates Goral