Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改角度材质中选定选项卡的下划线颜色?_Javascript_Angularjs_Angularjs Material - Fatal编程技术网

Javascript 如何更改角度材质中选定选项卡的下划线颜色?

Javascript 如何更改角度材质中选定选项卡的下划线颜色?,javascript,angularjs,angularjs-material,Javascript,Angularjs,Angularjs Material,我将按照教程在md工具栏中放置md选项卡。但是,我选择的指示器选项卡与md primary的颜色相同,使其不可见。请看下图 但是,当我将md选项卡的颜色更改为md重音时,它将显示指示器 如何更改所选指示器选项卡的颜色 代码如下: <md-toolbar class="md-whiteframe-5dp"> <div class="md-toolbar-tools"> <h2>Title</h2> </div

我将按照教程在
md工具栏中放置
md选项卡
。但是,我选择的指示器选项卡与
md primary
的颜色相同,使其不可见。请看下图

但是,当我将
md选项卡的颜色更改为
md重音时,它将显示指示器

如何更改所选指示器选项卡的颜色

代码如下:

<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>

标题
表1
表2
表3
项目#1的视图
data.selectedIndex=0 查看项目#2
data.selectedIndex=1 项目3的视图
data.selectedIndex=2

顺便说一下,所有颜色都是默认颜色。

最简单的方法是通过CSS进行更改:

md-tabs.md-default-theme md-ink-bar, md-tabs md-ink-bar {
    color: red !important;
    background-color:red !important;
}
但您也可以查看文档中关于主题的§:


有时CSS会在样式标记中嵌入并动态生成,如果此代码不起作用,请尝试使用
强制使用颜色!重要信息

我也在为这个问题挣扎。我不喜欢覆盖CSS的解决方案。因此,有一个更方便、更直接的解决方案:

md-tabs md-ink-bar {
    color: green;
    background-color: green;
}
只需为调色板设置默认色调:

$mdThemingProvider.theme('default')
            .primaryPalette('amber', { 'default': '600'})
            .accentPalette('indigo', { 'default': '400'});

tab墨水条,FAB speedial。。。将使用调色板中的此颜色。

您需要定义自定义主题,并将重点颜色设置为您希望md墨水条具有的颜色。在本例中,它是白色的:

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');
您可以在此网站上生成重音调色板:

在您的视图中,为md选项卡使用新的自定义主题:

<div md-theme="whiteAccentTheme">
  <md-tabs class="md-primary">...</md-tabs>
</div>

...

在花了很多时间阅读那些根本不起作用的回复之后,这就是我找到的解决方案。作为CSS新手,作为一个鄙视CSS的人,我想我会为那些同样是CSS新手和鄙视CSS的人发布我的解决方案

HTML

CSS


是否可以更改其左右样式?我希望它的宽度要小得多,如果你使用默认主题(也就是说不使用自定义主题),问题是AngularJS材质,而不是AngularJS材质。
<md-tab-group>
    <md-tab>
        <ng-template md-tab-label>
            <span class="mdTab">Tab Label</span>
        </ng-template>
    </md-tab>
</md-tab-group>
.mdTab{
  color: white;
}
.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar {
    background-color: #f44336;                     
}