我基本上有html
<mat-tab-group> <mat-tab> <mat-tab-group> <mat-tab> </mat-tab> </mat-tab-group> </mat-tab> </mat-tab-group>
我怎样才能使用css(或者其他方法)来隐藏外部标签组mat-tab-header元素,而不影响内部标签标题?
vyswwuz21#
我强烈建议您使用这个自定义指令,而不是使用css。
import { Directive, ElementRef, OnInit } from "@angular/core"; @Directive({ selector: "[header-less-tabs]", }) export class HeaderLessTabsDirective implements OnInit { constructor(private eleRef: ElementRef) {} ngOnInit(): void { this.eleRef.nativeElement.children[0].style.display = "none"; } }
这是非常简单和可重用的。用法示例:
<mat-tab-group header-less-tabs> <mat-tab> <mat-tab-group> <mat-tab> </mat-tab> </mat-tab-group> </mat-tab> </mat-tab-group>
vaj7vani2#
想明白了,只要选择直系子女
<mat-tab-group class="invisible-tabs"> <mat-tab> <mat-tab-group> <mat-tab> </mat-tab> </mat-tab-group> </mat-tab> </mat-tab-group> .invisible-tabs { > .mat-tab-header { display: none; } }
7vux5j2d3#
简单的替代解决方案:将以下内容添加到组件css文件中:
::ng-deep .mat-tab-header { display: none!important; }
cbjzeqam4#
<mat-tab-group > <mat-tab class="invisible-tabs"> </mat-tab> <mat-tab class="invisible-tabs"> </mat-tab> </mat-tab-group> <!-- in css file --> .invisible-tabs { ::ng-deep .mat-tab-header { display: none !important; } }
4条答案
按热度按时间vyswwuz21#
我强烈建议您使用这个自定义指令,而不是使用css。
这是非常简单和可重用的。用法示例:
vaj7vani2#
想明白了,只要选择直系子女
7vux5j2d3#
简单的替代解决方案:
将以下内容添加到组件css文件中:
cbjzeqam4#
使用ng:deep的另一种替代解决方案