You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery修改类的:before伪元素CSS样式

如何修改.file__add对应:before伪元素的样式

首先说最核心的结论::before(标准写法为::before)、:after这类伪元素根本不是真实的DOM节点,不会出现在DOM树里,你没办法用jQuery的选择器直接选中它,也没法直接调用.css()方法改它的样式,所有修改伪元素样式的方案都是间接实现的,常用的有三种:

  • 方案1:预定义CSS类,切换父元素类名(优先用这个)
    这是性能最好、最不容易出bug的写法。提前把你要改的伪元素样式写成一个新的CSS类,需要改样式的时候直接给.file__add加这个类就行。
    先写CSS:

    /* 原有默认样式 */
    .file__add:before {
      content: '';
      width: 56px;
      height: 56px;
    }
    /* 宽度200px的扩展样式 */
    .file__add.wide-icon:before {
      width: 200px;
    }
    

    jQuery逻辑非常简单:

    $('.file__add').addClass('wide-icon')
    
  • 方案2:用CSS变量做中转,支持动态传值
    如果你需要根据业务场景动态设置不同的宽度,不是固定的200px,可以用CSS变量实现,伪元素可以继承父元素上的CSS变量值。
    先把原有CSS的宽度值替换成变量,留好默认值:

    .file__add:before {
      content: '';
      width: var(--before-w, 56px);
      height: 56px;
    }
    

    之后你用jQuery给父元素设置这个CSS变量就行,写法和改普通CSS属性几乎没区别:

    // 想改多少改多少
    $('.file__add').css('--before-w', '200px')
    
  • 方案3:动态插入样式规则,不用改原有CSS
    如果你没法改动已经写好的旧CSS,可以直接往页面head里插一个style标签,写覆盖样式:

    $('<style>.file__add:before{width:200px!important}</style>').appendTo('head')
    

别用遍历stylesheet改规则的写法,兼容性差不说,样式优先级很容易乱,出问题根本不好排查。

内容的提问来源于stack exchange,提问作者Mammadali Mammadaliyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 05:09:31