我正在使用Angular Material中的MatExpansionPanel。当我检查生成的html时,我得到了如下所示的内容
<mat-expansion-panel _ngcontent-lnt-c367="" class="mat-expansion-panel ng-tns-c278-0 mat-expanded ng-star-inserted" ng-reflect-expanded="true">
<div role="region" class="mat-expansion-panel-content ng-tns-c278-0 ng-trigger ng-trigger-bodyExpansion" id="cdk-accordion-child-0" aria-labelledby="mat-expansion-panel-header-0" style="visibility: visible;">
<div class="mat-expansion-panel-body ng-tns-c278-0">
...
</div>
</div>
</mat-expansion-panel>
第一个div(带有mat-expansion-panel-content类)有很多空格,我想删除它们,但在此之前,我尝试了css选择器,如下所示
ion-menu mat-expansion-panel {
background-color: green; /* works */
}
ion-menu mat-expansion-panel .mat-expansion-panel-content {
background-color: red; /* doesn't work */
margin: 0;
}
我试着检查div是否有其他样式使用!important
,我发现我的css根本不存在。有什么线索吗?
1条答案
按热度按时间jjjwad0x1#
你有3个方法可以用来访问其他组件中的内部css选择器。
方法1 -全局样式表
首先你可以给予mat-expantion-panel一个类名,然后你可以用你的global .s(css)访问它,但是我只会在你要重复的时候这样做。
示例:
方法2 -使用ng-deep
用途::ng-deep,这意味着您将css渗透到全局空间(打破组件样式隔离),因此为了避免它意外地更改某些内容,请在组件中使用带有
:host
的模式。scss注意:这是首选的方法。如果你关心组件的隔离,那么样式的改变就与组件保持一致。
示例:
方法3 -查看封装。无(很少使用/不喜欢使用)
在你的组件上使用Change the viewEncapsulation.none。这意味着你把整个css放到全局空间中。如果你做了一个UI库,只使用我能想到的使用这个方法的原因,否则我不会用这个方法