CSS 解析器会无效地解析某些重复声明
浏览器本身已经有DOM树,且所有样式信息等都可以在选中组件后按需检索 这大概是我在 grapesjs 之前尝试过做的东西,说实话,经过几周的努力,我意识到结果就是一台大而难维护、不可靠、慢的垃圾。相信我,Tom,把这么大的应用状态放在DOM里,根本不是选项。[又一次](https://github.com/artf/grapesjs/issues/1032#issuecomment-380964323),我用的是浏览器的解析器,但问题在于构建规则的CSS状态。 顺便说一句,GrapesJS 在创建新样式规则之前,会检查 [https://github.com/artf/grapesjs/blob/dev/src/css_compo...
阅读下方完整回答 ↓问题
在最新的开发分支提交39be1e0上测试过。这个问题发生在我的一个模板上,所以是现实中存在的问题。我花了大约半天时间制作这个缩小测试用例,希望对你有帮助。 如果你有一个包含以下CSS的模板: 浏览器会正确地这样渲染: <img width=“609” alt=“截图 2018-04-20 下午3:14:01” src=“https://user-images.githubusercontent.com/331833/39075971-8307bb60-44ad-11e8-89ed-355801ac3c33.png”> JSFiddle:https://jsfiddle.net/szLp8h4n/192/ 但 grapes 渲染得不对: <img width=“863” alt=“截图 2018-04-20 下午3:16 04” src=“https://user-images.githubusercontent.com/331833/39076015-c52c0726-44ad-11e8-8469-c6f0f327c3d9.png”> JSFiddle:https://jsfiddle.net/szLp8h4n/194/ @artf这又是一个例子,我建议不要自己创建解析器(虽然你称它为“遍历器”),而是直接依赖浏览器的解析器。例如,当浏览器本身已有DOM树,且所有样式信息等都可以...
回答(3)
浏览器本身已经有DOM树,且所有样式信息等都可以在选中组件后按需检索 这大概是我在 grapesjs 之前尝试过做的东西,说实话,经过几周的努力,我意识到结果就是一台大而难维护、不可靠、慢的垃圾。相信我,Tom,把这么大的应用状态放在DOM里,根本不是选项。[又一次](https://github.com/artf/grapesjs/issues/1032#issuecomment-380964323),我用的是浏览器的解析器,但问题在于构建规则的CSS状态。 顺便说一句,GrapesJS 在创建新样式规则之前,会检查 [https://github.com/artf/grapesjs/bl...
@artf让我惊讶的是,这个项目变慢,因为我以为浏览器会为此高度优化,但你在这个项目上经验丰富,我相信你的判断;)
我绝对支持无条件添加所有规则的选项。这对我来说很合理,因为对我来说,浏览器才是真实的,不需要在浏览器告诉你的信息之外还做额外的检查。
你想这么做还是我应该创造个人最佳记录?如果是后者,你能告诉我这些检查是在哪里进行的吗?你之前链接的这个[getter](https://github.com/artf/grapesjs/blob/dev/src/css_composer/index.js#L223-L230)真的是吗?我预计这些检查应该是在getter之外完成的。
我真的很希望能破个人纪录。 我觉得在[添加方法](https://github.com/artf/grapesjs/blob/dev/src/css_composer/index.js#L192-L202)里检查应该没问题。
相关问答
通过相似的问题讨论继续研究。
问题 #3262
Parse styles to a Css string
你好@artf! “JavaScript “编辑”: { “CSS”: “* { 框大小:border-box; }#wrapper{字体家族:Helvetica,Arial Black,无衬线;color:#9500b3;}“, “html”:“<div id=\”iecr\...
问题 #916
为什么图层没有元素标签名称?
我正在尝试 grapes内部结构,因为我将来想有所贡献。我主要感兴趣的是用通用的HTML网站来做值得,无论CSS和HTML的风格和结构如何(包括doctype、body support等)。 我原本以为 layers 层级会代表DOM树。虽然目前看起来是这样,但元素的命名似乎不...
问题 #2392
无法将<div id=“gjs”>嵌套到任何其他标签中
看起来“index.html”结构需要是以下内容: '''html <body> <div id=“gjs” style=“height:0px; overflow:hidden”></div> <剧本......> 由于我的自定义样式需要第一个“div”和“main”的存在,...
问题 #1079
错误的BG重复CSS设置
在导入组件和初始化 grapesjs 时,css background-repeat 属性被改为 background-repeat-x 和 background-repeat-y,这在 iOS 上会被破坏。 导入组件: '''html <div id=“izmt”>Test...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
浏览插件分类
直接跳转到市场上的插件分类页面。