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

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

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

【问题讨论】:

    标签: jquery css


    【解决方案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。
        • 这里有替代方法:stackoverflow.com/questions/311052/…
        • @ShankarSangoli:这个答案适用于 IE8/9。由于不支持:after,它在任何较低版本中都不起作用。
        • 关于浏览器支持:由于问题首先是关于 :after,因此浏览器支持不是问题/答案的一部分。
        • @ShankarSangoli 随便给我打电话,但我不再关心 Internet Explorer,因为它没有做通常在所有其他浏览器中都能正常工作的事情。尤其是旧版本。如果人们仍然使用IE6并且仍然骑自行车不戴头盔,那就让他们吧。我不在乎了。
        猜你喜欢
        • 2017-08-23
        • 1970-01-01
        • 2021-10-14
        • 2014-12-16
        相关资源
        最近更新 更多