PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

问题 #5346💬 已回答提出于 2023年8月30日作者 pittleCheung0 个反应

删除组件而不删除其对应样式

快速解答作者 pittleCheung

https://github.com/GrapesJS/grapesjs/issues/1855 的扩展想法

阅读下方完整回答 ↓

问题

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? <img width=“1665” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/114127651/657cbaf6-7e87-4702-ac7f-36c710464728”> 预期的行为是什么? 风格可能会被简化, 目前的行为是什么? 首先,我的编辑器只使用一个页面。每次切换页面时,它都会用后端页面替换当前配置。因此,当我实现公开头部和尾部时,我可以使用编辑器。CodeManager.getCode(组件 , 'html', {cssc: editor.CssComposer});来替换组件,但我无法使用编辑器。CodeManager.getCode(component, 'css', {cssc: editor.cssComposer})来替换样式,如果我多次操作(删除并添加组件)在头部和尾部内的组件,会出现大量重复样式。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵守本项目的行为准则

回答(3)

GJS Helper• 2026年5月17日

你遇到的问题是删除组件后无法移除其对应样式,导致 CSS 重复,这是像 GrapesJS这样的网页构建器常见的挑战。这种行为是 GrapesJS的CssComposer设计,原因有几个: 根本原因解释: 共享样式: CSS 类和规则通常设计为可跨多个组件重复使用。如果删除一个组件自动移除了与其类关联的所有样式,可能会无意中破坏共享这些类的其他组件的样式。 全局样式: 有些样式是全局的(例如,body { margin: 0; }或应用于HTML标签的样式,如p、h1)。这些样式不绑定于特定组件实例,应当无论组件是否删除都保持不变。 复杂选择器: CSS 选择器可能很复杂(例如 .parent...

相关问答

通过相似的问题讨论继续研究。

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。