问题 #1041✓ 已解决提出于 2018年4月13日作者 tommedema4 个反应

可选地从StyleManager中插入样式,且 !重要

快速解答作者 tommedema2

在#1056上加入了PR

阅读下方完整回答 ↓

问题

我想建议一个可以通过配置启用的功能:'styleAsImportant: true'(默认为false,即不破坏)。我原以为只要配置cssComposer就能做到,但现在我了解到事实并非如此(详见下文解释)。 我使用的模板有时是从过度使用!important标志的预编译器生成的。例如,模板中的按钮可以样式为: 因此,用葡萄装饰这个按钮完全没有效果。让葡萄有效最明显的方法是确保: 1)葡萄的造型还有“!重要”(这个功能) 2)葡萄样式是在模板样式之后(应该已经是这样了,对吧?) 我猜正确的做法是让[CssRule.js#36](https://github.com/artf/grapesjs/blob/dev/src/csscomposer/model/CssRule.js#L36)可配置。我尝试用以下方法设置这个“重要”标志: 但这似乎没有任何影响。此外,当我把它硬编码为“true”时,我发现这个实现存在两个问题: 1)它还会为模板中的规则添加“!important”。这个功能建议专门针对通过样式管理器手动添加的规则,因为这些规则应该会覆盖模板的样式。否则没有附加价值。 2)如果模板规则中已有重要语句,则会重复添加“!important”,导致由于CSS属性无效而渲染失败: <img width=“325” alt=“截图 2018-04-13 12:11 02 pm” src=...

回答(3)

👍 最有帮助tommedema2018年4月20日

在#1056上加入了PR

artf2018年4月19日

@tommedema组件和 CSSS 规则实现了 Styleable,因此无论如何都能使用。你的意思是我们得写插件来监听这些事件,并为组件添加额外的样式? 不是额外,而是覆盖该模型触发的样式,例如。 “''js 例如,你的配置 cont styleImportance = 1; // ... editor.on('styleable:change', (model, property) => { const value = model.getStyle()[property]; console.log(“有”称号“,财产,价值); 如果(styleImportant) { model.add...

相关问答

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

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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