使用库在Drupal 8中添加和管理样式表(CSS)文件的标准方法是什么?

时间:2017-03-09 21:57:52

标签: drupal-8 theming lib

在为Drupal开发模块或主题时,我们可能需要为我们的项目包含一个外部CSS或Javascript插件或库。

Drupal资产管理有点复杂,让我感到困惑,我读到了Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 theme
Adding stylesheets (CSS) and JavaScript (JS) to a Drupal 8 module,但它没有明确解释还有一些问题。

如何将这些库和样式表添加到网页中?它们是按照SMACSS类别(基础,布局,组件,状态,主题)的顺序添加的吗? 例如,考虑以下结构:
ThemeName.libraries.yml

library-A:
  css:
    # The SMACSS category.
    base:
      # The path to the css file.
      assets/css/stylesheets-1.css: {}
    theme:
      assets/css/stylesheets-2.css: {}

library-B:
  css:
    base:
      # The path to the css file.
      assets/css/stylesheets-3.css: {}
    theme:
      assets/css/stylesheets-4.css {}

在图书馆A或B(仅限每个人):我应该如何定义类别?首先应该Theme然后base或反向?什么是标准?

完全在库A和B中:他们的女巫先加载?库-A或B?各自是对的?

1 个答案:

答案 0 :(得分:1)

for 1:more info here,虽然权重被反转,但基本上主题会覆盖基数;现在这是一个指南,而不是一个争论,所以它真的取决于你在写什么

for 2:它实际上取决于你加载它们的位置和方式,

ex以按顺序加载库:

    主题

    中的
  • 库:

    • 'mytheme / library-B'//用“ - ”替换子弹
    • 'mytheme / library-A'//用“ - ”替换子弹
  • 模板
  • {{attach_library('mytheme / library-B')}} {{attach_library('mytheme / library-A')}}

  • 模块

    中的
  • $ types ['element'] ['#attached'] ['library'] [] ='mytheme / library-B'; $ types ['element'] ['#adlated'] ['library'] [] ='mytheme / library-A';