【问题标题】:Styling 3rd party Angular components样式化 3rd 方 Angular 组件
【发布时间】:2017-11-07 08:10:30
【问题描述】:

在第三方 Angular 组件(例如 Material 或 ngx-datatable 的组件)上应用一些 CSS 样式的最佳方式是什么?我已经想到了两种方法:

  1. 覆盖特定的第 3 方组件的 CSS 类。我能想到的缺点是,一旦我们将组件升级到新版本,样式可能会中断,因为我们坚持内部实现(类名等)。

  2. 克隆 3rd 方组件的整个代码库并在其上直接更新 CSS。可能需要维护大量源代码,如果我们决定升级版本,则需要进行一些合并。

任何想法为什么一个更好以及它可能导致什么后果都值得赞赏。

【问题讨论】:

    标签: css angular styling


    【解决方案1】:
    1. 您可以覆盖 styles.css 文件中的 css,不能覆盖库的 css 文件。在您的文件中添加 css 选择器,然后开始在此处添加您的样式,可能使用 !important 标记来真正覆盖样式。 这样您就不必担心库的未来更新

    2. 不适合为小造型目的分叉!这很难维护

    【讨论】:

    • 我不同意你提出的两点。首先,!important 是不够的。组件的 HTML 结构和它使用的 CSS 类可能会在将来的版本中发生变化,因此您可能会覆盖组件不再使用的类 - 或用于不同目的。其次,为什么分叉不是一种选择?为什么它比其他解决方案更难维护?如果不给出解释,您的声明就没有它可能有用了。
    • 嗨@stakx。我同意,覆盖样式可能还不够,但它适用于大多数情况。如果 css 发生变化,您可以轻松更新 css 以修复它。我认为在这种情况下不需要分叉,就像我说的那样很难正确维护,因为 Angular 和 3rd 方组件往往会发生很大变化,而您可能无法像 css 那样掌握好
    【解决方案2】:

    只为覆盖样式代码分叉库不是一种选择,您必须覆盖您的styles.css文件中的css!

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 2017-09-22
      • 2019-02-14
      • 2018-06-18
      • 2021-08-20
      • 2020-09-26
      • 2020-10-27
      • 2020-09-22
      • 2018-06-27
      相关资源
      最近更新 更多