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

PrismJS与Bulma共用时语法高亮失效的原因及解决方案咨询

PrismJS与Bulma类名冲突解决方案

二者同时定义了number与tag类,样式互相覆盖导致语法高亮失效,问题表现如下:
PrismJS语法高亮失效示意图

可行解决方案

  • 方案1:修改PrismJS类名前缀
    从根源避免类名重复,在引入PrismJS资源前先声明全局配置修改类前缀:

    window.Prism = window.Prism || {};
    Prism.classPrefix = 'prism-';
    

    同步修改Prism主题CSS文件,将所有.number、.tag等语法类选择器前加上prism-前缀,或在Prism官方自定义构建时直接指定类前缀,自动生成对应CSS与JS文件。

  • 方案2:提升Prism样式优先级
    给所有Prism语法规则加上父级限定选择器,提高权重覆盖Bulma的默认样式:

    /* 仅需在原有Prism样式的选择器前加上父级限定即可 */
    pre[class*="language-"] .tag {
      color: #905; /* Prism默认tag颜色示例 */
    }
    pre[class*="language-"] .number {
      color: #905; /* Prism默认number颜色示例 */
    }
    
  • 方案3:排除Bulma冲突组件
    若项目中未使用Bulma的tag、number组件,可自定义构建Bulma时排除对应模块。使用Sass版本的Bulma时,在导入Bulma前设置变量即可:

    $bulma-tag: false;
    $bulma-number: false;
    @import "bulma/bulma";
    
  • 方案4:重置代码块内冲突类样式
    针对Prism代码块内的冲突类,直接清空Bulma施加的样式,再还原Prism默认效果:

    pre[class*="language-"] .tag,
    pre[class*="language-"] .number {
      all: unset;
      font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
      /* 补充对应Prism语法高亮的颜色、字体样式即可 */
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:54:05