我有几个大型 CSS 文件,有时可能需要几分钟才能找到要更改的正确选择器。如果有一个不错的 CSS 的 ModX 编辑器,我会很高兴,但我一直找不到。只要我的网站仍然呈现,我愿意将我的文件分成几部分。我可以这样做吗?怎么做?如果有一个不错的编辑器(插件?),我在哪里可以找到一个?
1 回答
我想真正的问题是你可以接受什么样的零件。如果您遵循这个问题,您可以开始允许 ModX 管理您的 CSS 的过程。一旦发生这种情况,您的选择就会大大增加。根据您对 ModX 的专业水平,您的 CSS 编辑将变得更容易且耗时更少。这个答案将非常简单,因为它将简单地展示如何将给定的选择器添加为资源。不过,可以从这里直观地了解其他进一步的发展。
CSS 作为资源
一旦您的 CSS 被作为资源管理(大约需要 15 分钟),您就可以使用模板、模板变量、块、片段和插件。这实际上非常惊人,但设置可能有点痛苦。你基本上会投入一些时间来节省未来的大量时间。下一个合乎逻辑的步骤是相应地拆分您的选择器,但您不想破坏当前的工作方式。对 getResources 插件有一个流畅的理解对于进一步的开发至关重要。
怎么做:
1.创建一个新块
单击元素选项卡,然后单击“新建块”。将其命名为“css 选择器”。将内容设置为:
[[+pagetitle]] {[[+content]]}
就这么简单。不要忘记点击“保存”!这将允许您将 Selector 设置为资源。它将使用选择器的标题和规则的内容。你可以忘记再使用那些牙套了。从现在开始,您的新块将处理这些。
2.调整你的模板
现在,我们只需要让模板相信它现在可以阅读部分内容,并且不要忘记整体。打开您的 CSS 样式表模板(说明[[*content]]
其内容的模板)。调整代码,使其具有以下内容:
[[!getResources?
&parent=`[[*id]]`
&depth=`1`
&tpl=`css-selector`
&includeContent=`1`
&sortby=`menuindex`
&sortdir=`ASC`
&limit=`99`
]]
[[*content]]
再次单击“保存”。让我快速解释一下模板。如果您有孩子,他们将根据他们的菜单索引首先呈现。此外,它将在之后呈现非子文档的内容。这将允许您只为最重要的选择器创建新资源,同时将永远不会更改的内容保留在主资源中。
3.创建一个新模板
这样您的选择器就不会做任何有趣的事情而只是渲染内容。创建一个名为“CSS 选择器”的新模板。将其内容设置为:
[[*content]]
4.创建一个新资源
创建一个新资源。将标题设置为要管理的 css 语句的选择器。然后将内容设置为不带大括号的规则。例如,如果您的 css 语句是:div#header .logo {border:0;}
,您将设置标题div#header .logo
和内容border:0;
。将资源别名设置为您想要的任何内容。我为每个人使用数字。将模板设置为新的“CSS 选择器”。重要现在,将父文档设置为您的样式表。单击保存。
5. 测试样式表
首先,右键单击您的新资源并选择“查看资源”。这将确保语句正确呈现。它应该简单地以 CSS 格式说明您的规则。
接下来,右键单击样式表资源并选择“查看资源”。您应该会在顶部看到选择器,并在其下方看到所有其他规则。
最后的考虑
观察
您会注意到您的子资源不必更改为“文档类型”的“CSS”。只有父样式表必须是。随着您对 ModX 的专业知识的增长,这允许一些整洁的东西。
您可以通过简单地更改它们的菜单索引来更改规则的顺序。
可以通过这种方式完成的规则数量取决于模板
&limit
中语句中的变量。适用于每个样式表,因此在此示例中,每个样式表有 99 个语句,它们可能是单独的资源。getResources
&limit
服务器负载注意事项
随着资源数量的增加,这将给服务器带来负载。对于开发,请在 getResources 语句中保留“不缓存标志”(!)。完成后,删除感叹号并将其全部缓存。这将节省大量负载。
进一步的发展
- 我添加了一个 isEnabled 模板变量,以便我可以随意打开和关闭每个规则。
- 您可能会开始使用 FormIt 在前端管理您的 CSS。
- 自定义管理器页面甚至可能是您更好的选择。
- 进一步的抽象可能允许您为更进一步的组织创建语句分组。