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

如何编写模块化CSS解决伪元素样式代码重复问题

方案1:使用CSS自定义属性(原生CSS,兼容性好,优先推荐)

把共用的阴影值定义为全局CSS变量,所有需要用到该阴影的位置直接调用变量,后续仅需修改变量值即可全局生效:

/* 全局定义共用变量 */
:root {
  --down-right-box-shadow: 0.5em 0.5em 0.5em 0em rgba(0,0,0,50%);
}

.down-right-box-shadow {
  box-shadow: var(--down-right-box-shadow);
}

.panel::after {
  content: "";
  width: 1em;
  height: 1em;
  border-radius: 100%;
  margin-top: 0.2em;
  background-color: blue;
  /* 直接调用共用变量 */
  box-shadow: var(--down-right-box-shadow);
}

这个方案不需要额外的预处理器,还支持运行时动态修改阴影值,适配性最强。

方案2:使用CSS预处理器的Mixin(Sass/Less/Stylus项目适用)

如果项目使用CSS预处理器,可将共用样式封装为混合宏,需要的位置直接引入,源码仅需维护一份:

/* 定义共用阴影的mixin */
@mixin down-right-box-shadow {
  box-shadow: 0.5em 0.5em 0.5em 0em rgba(0,0,0,50%);
}

.down-right-box-shadow {
  @include down-right-box-shadow;
}

.panel::after {
  content: "";
  width: 1em;
  height: 1em;
  border-radius: 100%;
  margin-top: 0.2em;
  background-color: blue;
  /* 引入mixin */
  @include down-right-box-shadow;
}

编译后CSS虽然还是会生成两份相同的阴影声明,但源码层仅需修改mixin即可同步更新所有引用位置,符合模块化开发习惯。

方案3:选择器分组(简单场景适用)

如果项目规模很小,也可以直接把需要共用该样式的选择器合并写在一起,仅声明一次规则:

.down-right-box-shadow, .panel::after {
  box-shadow: 0.5em 0.5em 0.5em 0em rgba(0,0,0,50%);
}

缺点是当共用该样式的元素/伪元素变多时,选择器列表会变得冗长,维护性下降,仅适合少量复用的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:27:05