创建 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
样式应用于带有 jQuery 的元素。答案仍然是否定的,尽管您可以使用 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伪类的样式(转)