给出Ionic 3中的一组标签,例如:
<ion-tabs tabsHighlight="true">
<ion-tab [root]="tab1Root" tabTitle="News" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="Agenda" tabIcon="time"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="Album" tabIcon="image"></ion-tab>
</ion-tabs>
tabsHighlight属性设置为true,完美无缺。然而,由于样式,我希望小“高亮条带”在特定选项卡上消失。现在我真的不在乎它是如何消失的,它可能会消失或什么的。 (如果它只是变成宽度较小的几个像素就足够了。)
但是,由于这个带有.tab-highlight和.animate类的元素是由Ionic添加的,所以我不知道如何访问这个元素。在任何地方我都会通过ViewChild访问Angular中的元素,但是,为此,我必须标记元素,例如使用#my-ref,我不能这样做,因为它是由Ionic添加的。
更改tabsHightlight属性也不起作用。显然,一旦渲染了这个东西,就不会再次检查该属性。 (据我的测试建议。)任何帮助都非常感激。
答案 0 :(得分:1)
您可以在tab-highlight
中为app.scss
设置样式,但它适用于整个应用。你不能只在css中为特定的标签做这件事。你需要写一些逻辑代码:
在tabs.html
:
<ion-tabs tabsHighlight="true">
<ion-tab [root]="tab1Root" tabTitle="News" (ionSelect)="showHighlight()" tabIcon="home"></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="Agenda" (ionSelect)="hideHighlight()" tabIcon="time"></ion-tab> //Assume that you want to hide tab-highlight in this tab
<ion-tab [root]="tab3Root" tabTitle="Album" (ionSelect)="showHighlight()()" tabIcon="image"></ion-tab>
</ion-tabs>
在tabs.ts
:
highlightElement: HTMLElement;
ionViewDidLoad() {
this.highlightElement = <HTMLElement>document.querySelector(".tabs .tab-highlight");
}
showHighlight(){
if(this.highlightElement)
this.highlightElement.style.display = "block";
}
hideHighlight(){
if(this.highlightElement)
this.highlightElement.style.display = "none";
}
答案 1 :(得分:0)
如果它生成类似.tab-highlight
的类,那么您可以访问它。
app.scss
.tab-highlight{
//give your change here
}
注意:大多数情况下,当您覆盖Ionic默认设置时,需要使用!important
。