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

问题 #5372💬 已回答提出于 2023年9月8日作者 uncldrw0 个反应

无法添加自定义AtRule(@container,@font面)

快速解答作者 GJS Helper

你遇到的自定义AtRules(如@container或@font-face)在使用editor.Css.addRules时被编译成@media的问题,是GrapesJS当前CssComposer中的已知限制。 根本原因 GrapesJS的CssComposer(负责管理 CSS 规则的模块)有一个内部解析器,主要用于处理标准 CSS 规则(带有属性的选择器)和一组特定的 AtRule,尤其是 @media 查询。当CssComposer遇到 AtRule 时,它没有显式识别或没有专门的解析/序列化机制(比如更新的 CSS 功能如 @container,或更专门的规则如 @font-face、@keyframes、@layer等),...

阅读下方完整回答 ↓

问题

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Windows、Chrome、React 可复制演示链接 / 描述一下那个虫子 当尝试添加自定义 atRules 如 @container 或 @font-face 时,CSS 总是会编译成 @media。我尝试过多种方法,包括使用 Css.setRules 和 Css.addRules,以及插入 HTML 字符串,但都无济于事。 这是我给的代码: 行为准则 [X] 我同意遵守本项目的行为准则

回答(1)

GJS Helper• 2026年5月17日

你遇到的自定义AtRules(如@container或@font-face)在使用editor.Css.addRules时被编译成@media的问题,是GrapesJS当前CssComposer中的已知限制。 根本原因 GrapesJS的CssComposer(负责管理 CSS 规则的模块)有一个内部解析器,主要用于处理标准 CSS 规则(带有属性的选择器)和一组特定的 AtRule,尤其是 @media 查询。当CssComposer遇到 AtRule 时,它没有显式识别或没有专门的解析/序列化机制(比如更新的 CSS 功能如 @container,或更专门的规则如 @font-face、...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

浏览插件分类

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