EJS模板中是否有CSS的标准模式?

时间:2017-10-14 15:20:51

标签: css templates express ejs

所以我最近开始在我的网站上更多地使用EJS模板,所以我做了一些事情,比如将顶部导航栏和其他东西分解成自己的模板。是否有一个标准的做法,如何组织CSS(或更具体的SCSS)?我是否应该只使用该模板的样式为每个模板创建匹配的SCSS,并在每个使用该模板的页面中添加<link/>?或者我只是将<style/>标签添加到模板本身,其中包含CSS。这有标准模式吗?

1 个答案:

答案 0 :(得分:1)

好问题。我认为答案是“不”,没有普遍的最佳或接受的标准。

我的“工作导师”给我的建议是好建议:他说“做最容易维护的事情”。这取决于您的项目。我可以想到几个一般的策略:

每个模板一个样式表

在某种程度上,这是最简单的建议。可能是最容易开发的,每个页面都会带来最少的样式。

然而,这使得重用样式变得非常不可能。您无法在<button class="myclass">中插入任何模板而不会在您需要的每张纸中重新包含.myclass的样式。此外,如果您想要自动化样式表(缩小或将它们连接起来用于生产等),这是常见的做法,从这里开始就不太可能了。

还有一个缺点,你可能会得到一些意想不到的排序效果。就像你的“widget.css”最终在你的“article.css”之后被添加到DOM一样,它可能会以不同于它早先在DOM中出现的方式覆盖样式。

每页上的所有样式

同样,这很简单。每个页面都包含所有样式表(或者可能只有一个巨页)。您可以在外部布局模板中链接到它一次。自动化缩小等很容易,并且永远不会有任何与订单样式表相关的惊喜。

明显的缺点是每个页面都有很多未使用的样式。但是css在尺寸方面相当“便宜”,所以这可能不是一个坏的下行。

介于两者之间

在每个页面上包含一些样式,并使某些页面特定或模板特定。实际上,这可能是大多数应用程序最终要做的事情。

您可以普遍包含要重用的实用程序样式(ex button.bigredform.orderform等),以及bootstrap等依赖项。我还建议在超过一半的页面中包含您需要的任何样式(导航栏的ex样式)。

可以通过链接直接将用于特定页面的其他样式添加到该页面。

最后一点

我尝试在html中避免使用<style>标记,原因如下:

  • 许多js库动态地向您的DOM添加或删除<style>标记,因此为它们留出明确的空间可以避免可能的错误或重叠。
  • 这是向模板中的页面添加动态或用户管理样式的好方法。保留样式表中没有变化的样式,以避免可能的错误或与自己重叠:)