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

Silverstripe自动添加font-size:10px样式问题求助

针对Silverstripe网站Safari用户列表自动添加小字体样式的排查方案

这种仅特定浏览器用户出现的编辑器问题确实挺棘手,结合你提到的无法复现的情况,大概率是Safari端的环境或编辑器兼容性问题,给你几个具体的排查和解决思路:

  • 排查用户的Safari环境干扰
    先帮用户排除本地浏览器的问题:

    • 让他切换到Safari的隐私浏览模式再创建列表,如果问题消失,说明是浏览器扩展(比如样式修改类插件、广告拦截器)或者本地设置导致的,建议他禁用近期安装的扩展,或者重置Safari的默认设置。
    • 检查他的Safari字体设置:偏好设置→高级,看看有没有勾选“允许网页设置字体大小”之外的选项,比如强制使用特定字体大小,这可能会被编辑器误读并注入样式。
  • 修复Silverstripe编辑器的Safari兼容性
    Silverstripe默认用TinyMCE作为富文本编辑器,针对Safari的contenteditable行为差异,可以调整编辑器配置:

    1. 在项目的app/_config/editor.yml里添加全局样式强制继承,覆盖自动注入的小字体:
      SilverStripe\CMS\Controllers\CMSMain:
        editor_css:
          - 'app/css/custom-editor-styles.css'
      
      然后在custom-editor-styles.css里写:
      ul li, ol li {
        font-size: inherit !important;
      }
      span[style*="font-size: 10px"] {
        font-size: inherit !important;
      }
      
    2. 更新TinyMCE到最新兼容版本,或者在编辑器配置里禁用自动字体转换:
      在EditorConfig的PHP配置里添加:
      $config = EditorConfig::get('cms');
      $config->setOption('convert_fonts_to_spans', false);
      $config->setOption('paste_remove_styles', true);
      
  • 排查用户的隐性输入残留
    有时候用户看起来是手动输入列表,但实际上可能不小心从其他应用(比如Mac的Notes、Mail)复制了带隐藏格式的内容,Safari会保留这些格式残留。建议用户完全清空输入框,手动敲回车创建列表,不要用任何复制粘贴操作,看看问题是否消失。

  • 临时应急方案
    如果暂时找不到根源,可以在Silverstripe的前端模板里全局覆盖这个样式,避免影响页面展示:
    在网站的全局CSS里添加:

    .content ul li, .content ol li {
      font-size: 16px !important; /* 换成你网站的默认字体大小 */
    }
    .content span[style*="font-size: 10px"] {
      font-size: inherit !important;
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:16:26