You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

TipTap React编辑器选中整个表格节点时无视觉高亮的问题求助

TipTap React编辑器选中整个表格节点时无视觉高亮的问题求助

大家好,我在使用TipTap React编辑器开发时遇到了一个视觉反馈的问题,想请教一下各位:

问题描述

表格节点的选择功能是正常的(可以复制、删除选中的表格),但选中整个表格时完全没有视觉高亮反馈;单个单元格的选择是正常显示高亮样式的,我现在需要实现的是:选中整个表格时,能显示蓝色外框或者背景高亮的视觉提示。

当前编辑器配置

这是我配置了表格扩展的TipTap编辑器代码:

// useEditorConfig.js
import { useEditor } from '@tiptap/react';
import { AllSelection, NodeSelection } from '@tiptap/pm/state';
import { Table } from '@tiptap/extension-table';
import StarterKit from '@tiptap/starter-kit';
import TableRow from '@tiptap/extension-table-row';
import TableHeader from '@tiptap/extension-table-header';
import TableCell from '@tiptap/extension-table-cell';

const editor = useEditor({
  extensions: [
    StarterKit,
    Table.configure({
      resizable: true,
      allowTableNodeSelection: true, // 已开启表格节点选择
    }),
    TableRow,
    TableHeader,
    TableCell,
  ],
  editorProps: {
    handleKeyDown: (view, event) => {
      if ((event.metaKey || event.ctrlKey) && event.key === 'a') {
        const allSelection = new AllSelection(view.state.doc);
        view.dispatch(view.state.tr.setSelection(allSelection));
        return true;
      }
      return false;
    },
  },
});

已尝试的CSS方案

我试了好几种CSS选择器来给选中的表格节点加样式,但都没有生效:

/* 尝试1:通用选中节点样式 */
.ProseMirror .ProseMirror-selectednode {
  outline: 3px solid #0096ff !important;
  background-color: rgba(0, 150, 255, 0.2) !important;
}

/* 尝试2:针对表格的选中节点样式 */
.ProseMirror table.ProseMirror-selectednode {
  outline: 3px solid #0096ff !important;
  background-color: rgba(0, 150, 255, 0.2) !important;
}

已验证的信息

我已经排查了这些点:

  • 用DOM检查器确认:选中表格时,table元素上没有被添加任何相关的CSS类
  • 已经正确配置了allowTableNodeSelection: true
  • 表格选择的功能逻辑是正常的(选中后可以复制、删除表格)
  • 单个单元格选中时,.selectedCell的高亮样式是正常工作的

想请教的问题

  1. TipTap在选中表格节点时,会给对应的元素添加什么CSS类吗?
  2. 我该如何编写样式,才能实现选中整个表格时的视觉高亮效果?
  3. TipTap有没有专门针对表格节点选择的CSS选择器?
  4. 我的需求很简单,就是选中整个表格时能有明确的视觉提示——比如蓝色的外框或者浅蓝的背景高亮。

麻烦各位大佬帮忙看看,谢谢啦!

火山引擎 最新活动