在angular2组件样式表中覆盖Bootstrap中的样式

MAD*_*Map 6 css sass twitter-bootstrap-3 angular-cli angular

我有一个angular2应用程序构建与angular-cli包含几个组件.每个组件都有一个引用的stylsheed(scss).

这些样式表中的独特样式正确应用于组件模板.

我不能做的是从外部css中覆盖样式,这些样式包含在来自那些组件样式表的angular-cli中.

一旦我将样式移动到中央styles.scss就可以了.

我的angular-cli.json看起来像这样:

  "styles": [
    "../node_modules/bootstrap/dist/css/bootstrap.css",
    "../node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.css",
    "../node_modules/bootstrap-timepicker/css/bootstrap-timepicker.css",
    "styles.scss"
  ],
Run Code Online (Sandbox Code Playgroud)

任何想法如何覆盖component.scss中的bootstrap-css?

MAD*_*Map 10

我也发布了这个问题作为angular-cli项目的一个可能的错误,得到了我需要的提示:

模拟视图封装(默认)通过预处理(和重命名)CSS代码来模拟Shadow DOM的行为,从而有效地将CSS范围限定在组件的视图中.如果这些类被重命名为这种行为,它不能工作,我不能覆盖ie的样式.引导.

如果我现在将组件中的封装设置为none,它可以工作,我可以覆盖component.scss中的样式.

@Component({
    selector: 'app-generic-view',
    templateUrl: './generic-view.component.html',
    styleUrls: ['./generic-view.component.scss'],
    encapsulation: ViewEncapsulation.None
})
Run Code Online (Sandbox Code Playgroud)