如何禁用ViewEncapsulation的效果?没有吗?比如我的一个组件(firstComponent)用一些属性定义了一个css类。有一个secondComponent使用了相同的css类。我希望我的“secondComponent”为第一个组件样式表定义的属性使用不同的特定值。我怎样才能实现这一点?
注意:我在“secondComponent”中用不同的值重新定义了同一类,保持了dirdComponent的视图大写默认值。它不适合我。
FirstComponent:
@Component({
moduleId: module.id,
selector: "FirstComponent",
templateUrl: 'FirstComponent.component.html',
styleUrls: ['FirstComponent.component.css'],
encapsulation: ViewEncapsulation.None
})
FirstComponent.component.css
.ui-tree .ui-tree-container {
background-color: #252525;
color: white;
}
Second Component:
@Component({
moduleId: module.id,
selector: "SecondComponent",
templateUrl: 'SecondComponent.component.html',
styleUrls: ['SecondComponent.component.css'],
})
SecondComponent.Component.css
.ui-tree .ui-tree-container {
background-color: white;
color: black;
}
我在这两个组件中都创建了p-tree,它在内部使用.ui树容器。我希望我的第二个组件的树的背景应该是白色的,而对于所有其他地方,树的背景都应该保持黑色。
如果您只想通过自定义某些部分来重用CSS white,那么可以使用scss变量
步骤#1
使用通用属性和默认颜色创建scss文件
commontree.scss
$bgColor : white !default;
$color: black !default;
.ui-tree .ui-tree-container {
background-color: $bgColor;
color: $color;
}
第二步
在组件的scss文件中,如果需要,修改变量的值并导入comon scss文件
组件1.SCSS
$bgColor: #252525; /* Override colors */
$color: white;
@import './commontree.scss';
组件2.scss
/* Use default colors */
@import './commontree.scss';
为此,您可以(并且可能应该)将视图封装保持为默认的< code>ViewEncapsulation。仿真
Stackblitz演示
您也可以对 FirstComponent 使用 Default ViewEncapsulation,并分别在 css 文件中使用 ::ng-deep 选择器。
第二成分
::ng-deep .ui-tree .ui-tree-container{
background-color: white;
color: black;
}
FirstComponent
::ng-deep .ui-tree .ui-tree-container{
background-color: #252525;
color: white;
}
您可以将css封装在组件选择器中。
< code > first component . component . CSS
FirstComponent .ui-tree .ui-tree-container {
background-color: #252525;
color: white;
}
SecondComponent.component.css
SecondComponent .ui-tree .ui-tree-container {
background-color: white;
color: black;
}
通过这种方式,它们不会相互影响模板。此外,您可以选择对两者都使用 ViewEncapsulation.None
,无论是否使用它们中的任何一个。
本文向大家介绍Vue封装Swiper实现图片轮播效果,包括了Vue封装Swiper实现图片轮播效果的使用技巧和注意事项,需要的朋友参考一下 图片轮播是前端中经常需要实现的一个功能。最近学习Vue.js,就针对Swiper进行封装,实现一个简单的图片轮播组件。 一、Swiper 在实现封装之前,先介绍一下Swiper。 Swiper是纯Javascript打造的滑动特效插件,面向手机、平板电脑等移动
本文向大家介绍JS简单封装的图片无缝滚动效果示例【测试可用】,包括了JS简单封装的图片无缝滚动效果示例【测试可用】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS简单封装的图片无缝滚动效果。分享给大家供大家参考,具体如下: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaSc
我想重写我正在使用的开源组件的样式,但是我能找到的禁用视图封装的唯一方法是在组件的装饰器上。当然,使用第三方模块意味着我不能为它编辑源代码。不然怎么做? 编辑 我知道这个/深度/风格的建议。我想做的是用bootstrap 4中的样式覆盖第三方组件中的表样式。自定义组件有一个.table类应用于它,但是使用视图封装,boostrap 4类无法访问它。 我只是想知道,是否有一种方法可以完全禁用视图封装
自定义视图变换的各种动画效果。其中包括:CALayer、UIViewAnimation、CATransition、CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup、CATransform3D各个知识点实现的动画效果,实现好多特炫动画,供大家学习参考。 [Code4App.com]
我正在制作一个简单的hello world应用程序(目前是从angular 1迁移过来的),我使用angular-CLI生成组件,它创建了一个样式表,并通过styleurls将其链接到组件中。我的样式都没有按照我认为的方式应用,除非我做了“viewencapsulation.None”。是不是我漏了什么?或者有没有更好的方法来写出css呢? 如果我使用默认封装(viewencapsulation.