【问题标题】:Using Less with AngularDart components and Bootstrap在 AngularDart 组件和 Bootstrap 中使用 Less
【发布时间】:2014-06-13 13:41:49
【问题描述】:

我已经开始将一个 AngularJS 应用程序迁移到 AngularDart,使用 Vic Savkin's sample app 作为骨架。

我现有的项目使用较少的 CSS。我不清楚如何将其包含在我的项目中。

具体来说,我在“lib”文件夹中有组件,在“web”文件夹中有 CSS。我希望能够在项目级别定义一些 Less 变量,这些变量将由组件使用。我希望在以后的其他项目中使用这些组件。

是否需要在每个组件的less文件中导入bootstrap.less和variables.less文件,还是有更高效的方法?

【问题讨论】:

    标签: dart angular-dart


    【解决方案1】:

    首先,如果你想在weblib 中使用某些东西,请将其放入lib。您可以使用package:mypackage/asset/css/mycss.csslib 导入到web,但反之则不行。

    我猜你会避免使用 shadowDOM,因为 Bootstrap 不能很好地使用它。
    如果您仍想使用 shadowDOM,则需要将 CSS 添加到每个组件中(当您有嵌套组件时可能仍然会造成麻烦)或修改 CSS 选择器。

    如果您修改 CSS 选择器,您需要为每个规则添加额外的选择器,例如:

    /* original */
    .someclass .someotherclass { xxx: yyy; }
    
    
    /* modify to */
    
    .someclass .someotherclass,
    * /deep/ .someclass /deep/ .someotherclass,
    * /deep/ .someclass .someotherclass, /* might be necessary too */
     { xxx: yyy; }
    

    如果您创建所有组件(并且仅使用不使用 shadowDOM 的 3rd 方组件),您可以将所有 CSS 放入 index.html 页面中,就像在 Angular.js 中一样。

    【讨论】:

    • 感谢您的共鸣。我对使用 AngularDart 很感兴趣,部分原因是 shadowDOM。我在其他地方读到“Bootstrap 不能很好地与 shadowDOM 配合使用”,但不明白这意味着什么(或者它是如何可能的)。如果我只使用 Bootstrap CSS(不是 JS),shadowDOM 怎么知道它是 Bootstrap 并选择不使用它? :) 如果我将 Angular-ui Bootstrap 库与 AngularDart 和 Bootstrap 一起使用,他们三个会成为朋友吗?
    • ShadowDOM 创建边界,您需要为每个 CSS 规则使用特殊的选择器才能到达 shadowDOM 内的元素(如 /deep/)。一种解决方法是将样式链接添加到每个组件,但这并不适用于所有情况。你知道 Angular.dart.ui 吗?
    • 是的,当我说 Angular-ui BootStrap 时,我指的是 Angular-dart-ui。我认为它只是为 Bootstrap js 提供 Dart 替代品。我是否理解如果我使用 Angular-dart-ui,我将能够在带有 shadowDOM 的 AngularDart 项目中使用 Bootstrap 类?
    • 不,当这个选项可用时,项目从 shadowDOM 中移除,因为使用 shadowDOM 需要自定义 Bootstrap CSS,但使用 vanilla Bootstrap 是项目的主要目标。
    • 再次感谢。是否有与 shadowDOM 兼容的 Bootstrap 的可行替代方案?
    猜你喜欢
    • 2016-01-28
    • 2017-04-13
    • 2014-09-25
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2014-10-31
    相关资源
    最近更新 更多