Angular Encapsulation - css选择器选不到非angular组件(插件)

Angular5 项目中遇到:当我在某一个组件的css文件中使用css类选择器去选择组件中的插件元素,发现选择器选择不到该插件元素。

经过google分析发现是组件中的一个属性在作祟: encapsulation. 默认情况下: angular组件对应的css只在该组件下起作用,对于不属于angular组件的元素是不起作用的(例如组件中引入的各个插件 highcharts tooltips bootstrap)。

想要解决这个问题,我们需要设定css为非包裹性的,即css选择器的范围是body内的所有元素,而非只是当前的组件。

code:

 1 import { Component, OnInit, OnDestroy, ViewChild, Input, ViewEncapsulation, ElementRef, AfterViewInit, HostListener, ViewChildren, QueryList, Renderer2 } from '@angular/core';
 2 .......
 3 import { BsModalService } from 'ngx-bootstrap';
 4 const highchartsWordcloud = require('highcharts');
 5 require('highcharts/modules/wordcloud')(highchartsWordcloud);
 6 
 7 @Component({
 8   templateUrl: './individual-group.component.html',
 9   styleUrls: ['./individual-group.component.scss'],
10   encapsulation: ViewEncapsulation.None
11 })

ViewEncapsulation是一个枚举类型,有四个值,具体可参考官方文档

If  encapsulation is not supplied, the value is taken from CompilerOptions. The default compiler option isViewEncapsulation.Emulated.

 下面这篇文章是我觉得讲解 encapsulation比较详细的,大家可以做参考

转载于:https://www.cnblogs.com/juliazhang/p/10524436.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值