首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角6变元到全局css

角6变元到全局css
EN

Stack Overflow用户
提问于 2018-10-30 09:51:11
回答 2查看 1.6K关注 0票数 0

我在我的组件中使用Handsontable,它迫使我将它的css全局包含在我的angular.json文件中

代码语言:javascript
复制
"styles": [
         "./src/styles.scss",
          "./node_modules/handsontable/dist/handsontable.full.css"
       ],

它会影响我所有的应用程序中的日历组件。我如何才能包括这个css仅用于该手持式组件,并禁用它的所有其他组件。

在手持式组件scss文件中写入导入不起作用。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-30 09:54:36

如下所示。注意encapsulation: ViewEncapsulation.None。这将禁用默认的Emulated DOM,因此该组件的样式也将适用于子组件。另外,默认情况下,Emulate DOM保护每个组件的作用域(这就是为什么在您的情况下它不能工作)。

也请参考文档

然而,这并不能真正解决你的问题。因为,根据文件:

ViewEncapsulation无任何意味着角没有视图封装。角将CSS添加到全局样式中。前面讨论的范围规则、隔离和保护不适用。这与将组件的样式粘贴到HTML中本质上是一样的。

什么是有效的,输出将以任何方式在全球范围内。

因此,可能在主styles.scss中添加一次就更容易了

代码语言:javascript
复制
@import '~/handsontable/dist/handsontable.full.css';

使用ViewEncapsulation.None封装。

代码语言:javascript
复制
// component.ts
@Component({
  selector: 'app-table',
  template: `<hot-table ....></hot-table>`,
  styleUrls: ['./table.component.scss'],
  encapsulation: ViewEncapsulation.None
})
export class TableComponent {
...
}

// component.scss
@import '~/handsontable/dist/handsontable.full.css';
票数 2
EN

Stack Overflow用户

发布于 2018-10-30 10:00:53

您可以尝试以下方法

代码语言:javascript
复制
@Component({
    selector: 'app-home-component',
    template: '<div></div>',
    styleUrls: [
        'path/handsontable.full.css',
        './home.component.css'
    ], 
})
export class HomeComponent{}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53061531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档