问题 #910💬 已回答提出于 2018年2月28日作者 tommedema1 个反应

:支持没有预定义CSS结构的现有HTML页面的复杂度估计?

快速解答作者 tommedema1

@artf谢谢,我明白了。我其实很喜欢你依赖浏览器的CSS解析器,因为我已经注意到大模板的性能问题了。如果你还依赖Postcss,我担心性能可能会进一步下降。 我目前正在用各种模板测试葡萄。我会整理一份关于小提琴的问题清单。 大多数渲染问题源于文档类型未被应用,但也有一些其他问题。有些功能问题,比如如果你复制了一个组件,然后更改它的样式,原组件的样式也会被调整。这似乎是因为 Grapes 是调整原始类,而不是针对你选择的组件内联编辑样式。 我也希望自己能有所贡献,所以首要目标是听听你们对每个问题的见解,然后希望我能帮忙解决。 我先关闭这个问题,等有例子后再重新打开。

阅读下方完整回答 ↓

问题

我有大量静态网站,有些是很久以前开发的(用Bootstrap等),有些是最近开发的(用CSS Grid等)。有些使用内联样式,有些使用基于类的样式,有些基于组件层级(例如“#id > div > ul > li”),有些则直接通过 html 组件名样式(例如 'form'),还有些则结合这些元素。

我相信 Grapes 只支持类似 BEM 的 CSS 样式。也就是说,每个组件都有自己的类。这是正确的吗?

此外,这些静态站点中有些依赖于大型CSS库,比如Bootstrap,我想把它们传递到'grapes.init'的'style'属性里。实现这一点会非常有挑战性吗?

我要内置支持任意CSS样式会有多复杂?这需要彻底改造吗?还是说其实可以比较容易地完成?你能给我一些正确的方向吗?

回答(3)

tommedema2018年3月4日

@artf谢谢,我明白了。我其实很喜欢你依赖浏览器的CSS解析器,因为我已经注意到大模板的性能问题了。如果你还依赖Postcss,我担心性能可能会进一步下降。

我目前正在用各种模板测试葡萄。我会整理一份关于小提琴的问题清单。

大多数渲染问题源于文档类型未被应用,但也有一些其他问题。有些功能问题,比如如果你复制了一个组件,然后更改它的样式,原组件的样式也会被调整。这似乎是因为 Grapes 是调整原始类,而不是针对你选择的组件内联编辑样式。

我也希望自己能有所贡献,所以首要目标是听听你们对每个问题的见解,然后希望我能帮忙解决。

我先关闭这个问题,等有例子后再重新打开。

artf2018年3月2日

我相信 Grapes 只支持类似 BEM 的 CSS 样式。也就是说,每个组件都有自己的类。这是正确的吗? 是“选择器/类查看器”,只能让你编辑基于类的选择器的样式,比如“.class1” “.class1.class2”,但GrapesJS应该能顺利导入你所有的规则此外,有些静态站点依赖于像 Bootstrap 这样的大型 CSS 库,我想把这些库传递到 grapes.init 的 style 属性中。实现这一点会非常有挑战性吗? 你可以用这种方式加载外部内容 “''js const editor = Grapesjs.init({ ... 画布:{ 斯泰尔斯:['...file1.css...

tommedema2018年3月2日

@artf 谢谢你的回答!我觉得我可能需要详细解释一下我的使用场景。 并不总是指望导入模板的人能定义来自外部库的CSS。原因在于CSS通常会被编译并压缩成一个捆绑包。因此,引导规则等将与该HTML页面的规则合并。因此无法定义哪些文件应该单独导入。 我说的任意CSS样式是指用CSS选择器为HTML元素做样式的不同方式集合(类、原生HTML元素与内联等)。 到目前为止,我注意到我当前模板在 Grapes 编辑器中渲染错误的三个原因:模板的文档类型被忽略;HTML4 模板的渲染方式与 HTML5 不同,因此导入模板时应保留或定义文档类型(HTML + CSS + doctype 代替 HTML +...

相关问答

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

问题 #1888

在画布内添加自定义HTML

你好, 我用 Grapes 导出一个包含所有信息的自定义 json,而不是用 HTML 和 CSS。 为此,我解析存储在localStorage上的gpjs组件。 现在我需要自定义组件在Canvas中的渲染方式。 举个例子,我有一个输入组件,包含两个特征(标签和值),我想在画布...

3 个回答更新于 2020年4月2日

问题 #1877

有没有自定义样式可以添加或移除自定义职业?

目前,你更改元素的所有样式管理器值,都是在HTML中内<style>联更新标签。有没有可能改变这种行为,使得更改CSS值时会添加或移除自定义类到元素中? 一个很好的原因是Bootstrap 4。99%的Bootstrap自定义都涉及简单地给元素添加类,以改变诸如边距、填充、显示...

3 个回答更新于 2020年3月27日

问题 #1753

StyleManager - SectorsView - addToCollection() 使用“name”属性构建 ID,但因多个空格或特殊字符而失败

你好@artf, 利用grapesjs.init()方法中的pluginOpts属性,我通过Newsletter插件自定义了样式管理器中显示的扇区,如下: “''js Grapesjs.init({ [...] 插件:['gjs-plugin-ckeditor', 'gjs-b...

3 个回答更新于 2020年1月27日

问题 #1519

:在 grapesjs.init 中加入组件

能否在 grapesjs.init 上初始化组件。 我们没有使用 StorageManager.load。 我们已经在init时拿到了项目数据。 用 HTML 没问题,但用组件会把组件对象渲染成编辑器中的文本。 'this.editor = grapesjs.init({ co...

3 个回答更新于 2019年10月16日

与此问题匹配的付费插件

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

查看全部插件

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

免费方案

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

浏览免费插件 →
高级方案

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

浏览高级插件 →

相关教程

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

全部教程 →

浏览插件分类

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