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

在React框架中如何设置CKEditor 5禁用状态下的编辑器背景颜色

解决方案

你之前的写法逻辑有误:CKEditor 5的.ck-read-only类会直接添加在.ck-editor__editable元素自身,而非其子元素,因此完全不需要使用兼容性不好的:has()选择器,直接修改CSS即可实现需求。

方案1:仅修改CSS(推荐,无额外代码侵入)

直接调整选择器匹配自带的只读类即可:

/* 编辑器启用状态背景 */
.ck .ck-editor__main > .ck-editor__editable {
  background: #FFF;
}
/* 编辑器禁用/只读状态背景 */
.ck .ck-editor__main > .ck-editor__editable.ck-read-only {
  background: #C3C3C3;
}

方案2:通过React状态动态控制(适合需要自定义复杂样式的场景)

如果需要和组件内其他逻辑联动控制样式,可以给编辑器外层包裹容器,通过disabled状态动态绑定类名:

组件代码修改

// 示例用状态控制禁用状态,你可以根据自己的业务逻辑调整
const [isEditorDisabled, setIsEditorDisabled] = useState(true);

return (
  <div className={`ck-editor-container ${isEditorDisabled ? 'ck-container-disabled' : ''}`}>
    <CKEditor
      disabled={isEditorDisabled}
      editor={Editor}
      config={{
        toolbar: [
          'bold',
          'italic',
          'underline',
          'bulletedList',
          'numberedList',
          'link',
          '|',
          'imageUpload'
        ],
        placeholder: 'Start writing your note'
      }}
      onReady={editor => {
        console.log('Editor is ready to use!', editor);
      }}
      onChange={(event, editor) => {
        const data = editor.getData();
        console.log({ event, editor, data });
      }}
    />
  </div>
)

对应CSS代码

.ck-container-disabled .ck .ck-editor__main > .ck-editor__editable {
  background: #C3C3C3;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 09:36:10