如何更改angular-material中选中标签的下划线颜色?
How to change the underline color of selected tab in angular-material?
我正在按照教程将 md-tabs
放入 here 的 md-toolbar
中。但是,我选择的指示器选项卡与 md-primary
颜色相同,这使其不可见。请看下图。
但是,当我将 md-tabs
的颜色更改为 md-accent
时,它会显示指示器。
如何更改所选指标选项卡的颜色?
代码如下:
<md-toolbar class="md-whiteframe-5dp">
<div class="md-toolbar-tools">
<h2>Title</h2>
</div>
<md-tabs md-selected="tabs.selectedIndex">
<md-tab id="tab1" aria-controls="tab1-content">Tab #1</md-tab>
<md-tab id="tab2" aria-controls="tab2-content">Tab #2</md-tab>
<md-tab id="tab3" aria-controls="tab3-content">Tab #3</md-tab>
</md-tabs>
</md-toolbar>
<md-content layout-padding flex>
<ng-switch on="tabs.selectedIndex" class="tabpanel-container">
<div role="tabpanel" id="tab1-content" aria-labelledby="tab1" ng-switch-when="0" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #1<br />
data.selectedIndex = 0
</div>
<div role="tabpanel" id="tab2-content" aria-labelledby="tab2" ng-switch-when="1" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #2<br />
data.selectedIndex = 1
</div>
<div role="tabpanel" id="tab3-content" aria-labelledby="tab3" ng-switch-when="2" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #3<br />
data.selectedIndex = 2
</div>
</ng-switch>
</md-content>
顺便说一句,所有颜色都是默认的。
最简单的方法是通过 CSS 更改:
md-tabs.md-default-theme md-ink-bar, md-tabs md-ink-bar {
color: red !important;
background-color:red !important;
}
但您也可以查看文档中关于主题的§:
https://material.angularjs.org/latest/Theming/01_introduction
有时 CSS 会在样式标签中嵌入并动态生成,如果此代码不起作用,请尝试使用 !important
强制颜色。
md-tabs md-ink-bar {
color: green;
background-color: green;
}
我也遇到过这个问题。我不喜欢覆盖 CSS 的解决方案。所以有一个更方便和更直接的解决方案:
只需为您的调色板设置默认色调:
$mdThemingProvider.theme('default')
.primaryPalette('amber', { 'default': '600'})
.accentPalette('indigo', { 'default': '400'});
选项卡墨水条、FAB speedial...将使用您调色板中的这种颜色。
您需要定义一个自定义主题并将重音颜色设置为您希望 md-ink-bar 具有的颜色。在这个例子中它是白色的:
var customAccent = {
'50': '#b3b3b3',
'100': '#bfbfbf',
'200': '#cccccc',
'300': '#d9d9d9',
'400': '#e6e6e6',
'500': '#f2f2f2',
'600': '#ffffff',
'700': '#ffffff',
'800': '#ffffff',
'900': '#ffffff',
'A100': '#ffffff',
'A200': '#fff',
'A400': '#f2f2f2',
'A700': '#ffffff'
};
$mdThemingProvider
.definePalette('whiteAccent', customAccent);
$mdThemingProvider.theme('whiteAccentTheme')
.primaryPalette('deep-purple')
.accentPalette('whiteAccent');
您可以在此站点上生成重音调色板:https://angular-md-color.com/#/
在您看来,为您的 md-tabs 使用新的自定义主题:
<div md-theme="whiteAccentTheme">
<md-tabs class="md-primary">...</md-tabs>
</div>
在浪费了大量时间阅读无效的回复之后,这就是我找到的解决方案。作为 CSS 的新手,作为一个鄙视 CSS 的人,我想我会 post 我的解决方案,以解决那些也是 CSS 的新手并鄙视 CSS .
HTML
<md-tab-group>
<md-tab>
<ng-template md-tab-label>
<span class="mdTab">Tab Label</span>
</ng-template>
</md-tab>
</md-tab-group>
CSS
.mdTab{
color: white;
}
CSS
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
background-color: #f44336;
}
晚会有点晚了,但可能会对某人有所帮助。只需将 mat-tab-group 的颜色 属性 设置为 none
<mat-tab-group mat-align-tabs="start" mat-align-tabs="center" color="none">
我正在按照教程将 md-tabs
放入 here 的 md-toolbar
中。但是,我选择的指示器选项卡与 md-primary
颜色相同,这使其不可见。请看下图。
但是,当我将 md-tabs
的颜色更改为 md-accent
时,它会显示指示器。
如何更改所选指标选项卡的颜色?
代码如下:
<md-toolbar class="md-whiteframe-5dp">
<div class="md-toolbar-tools">
<h2>Title</h2>
</div>
<md-tabs md-selected="tabs.selectedIndex">
<md-tab id="tab1" aria-controls="tab1-content">Tab #1</md-tab>
<md-tab id="tab2" aria-controls="tab2-content">Tab #2</md-tab>
<md-tab id="tab3" aria-controls="tab3-content">Tab #3</md-tab>
</md-tabs>
</md-toolbar>
<md-content layout-padding flex>
<ng-switch on="tabs.selectedIndex" class="tabpanel-container">
<div role="tabpanel" id="tab1-content" aria-labelledby="tab1" ng-switch-when="0" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #1<br />
data.selectedIndex = 0
</div>
<div role="tabpanel" id="tab2-content" aria-labelledby="tab2" ng-switch-when="1" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #2<br />
data.selectedIndex = 1
</div>
<div role="tabpanel" id="tab3-content" aria-labelledby="tab3" ng-switch-when="2" md-swipe-left="tabs.next()" md-swipe-right="tabs.previous()">
View for Item #3<br />
data.selectedIndex = 2
</div>
</ng-switch>
</md-content>
顺便说一句,所有颜色都是默认的。
最简单的方法是通过 CSS 更改:
md-tabs.md-default-theme md-ink-bar, md-tabs md-ink-bar {
color: red !important;
background-color:red !important;
}
但您也可以查看文档中关于主题的§: https://material.angularjs.org/latest/Theming/01_introduction
有时 CSS 会在样式标签中嵌入并动态生成,如果此代码不起作用,请尝试使用 !important
强制颜色。
md-tabs md-ink-bar {
color: green;
background-color: green;
}
我也遇到过这个问题。我不喜欢覆盖 CSS 的解决方案。所以有一个更方便和更直接的解决方案:
只需为您的调色板设置默认色调:
$mdThemingProvider.theme('default')
.primaryPalette('amber', { 'default': '600'})
.accentPalette('indigo', { 'default': '400'});
选项卡墨水条、FAB speedial...将使用您调色板中的这种颜色。
您需要定义一个自定义主题并将重音颜色设置为您希望 md-ink-bar 具有的颜色。在这个例子中它是白色的:
var customAccent = {
'50': '#b3b3b3',
'100': '#bfbfbf',
'200': '#cccccc',
'300': '#d9d9d9',
'400': '#e6e6e6',
'500': '#f2f2f2',
'600': '#ffffff',
'700': '#ffffff',
'800': '#ffffff',
'900': '#ffffff',
'A100': '#ffffff',
'A200': '#fff',
'A400': '#f2f2f2',
'A700': '#ffffff'
};
$mdThemingProvider
.definePalette('whiteAccent', customAccent);
$mdThemingProvider.theme('whiteAccentTheme')
.primaryPalette('deep-purple')
.accentPalette('whiteAccent');
您可以在此站点上生成重音调色板:https://angular-md-color.com/#/
在您看来,为您的 md-tabs 使用新的自定义主题:
<div md-theme="whiteAccentTheme">
<md-tabs class="md-primary">...</md-tabs>
</div>
在浪费了大量时间阅读无效的回复之后,这就是我找到的解决方案。作为 CSS 的新手,作为一个鄙视 CSS 的人,我想我会 post 我的解决方案,以解决那些也是 CSS 的新手并鄙视 CSS .
HTML
<md-tab-group>
<md-tab>
<ng-template md-tab-label>
<span class="mdTab">Tab Label</span>
</ng-template>
</md-tab>
</md-tab-group>
CSS
.mdTab{
color: white;
}
CSS
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
background-color: #f44336;
}
晚会有点晚了,但可能会对某人有所帮助。只需将 mat-tab-group 的颜色 属性 设置为 none
<mat-tab-group mat-align-tabs="start" mat-align-tabs="center" color="none">