当前位置: 首页 > 知识库问答 >
问题:

角材料垫-选择造型问题

太叔英锐
2023-03-14

我正在使用angular 8.0.0,angular material和Fuse主题作为管理面板。问题是,每当我更改mat-select的样式时,它就会被应用,但在一两次刷新后,角度材质会覆盖本地组件更改并应用默认的。
它也会应用到所有组件,我如何才能只更改一个mat-select的样式?

我的html中有问题的部分:

   <form>
    <mat-form-field>
        <mat-label class="label-colors"> bla bla </mat-label>
        <mat-select formControlName="">
            <mat-option value="active" class="empty-select">bla bla</mat-option>
            <mat-option value="inactive" >bla bla</mat-option>
        </mat-select>
       </mat-form-field>
       <mat-form-field>
        <mat-label class="label-colors"></mat-label>
        <mat-select formControlName="isReserved">
            <mat-option value="active"></mat-option>
            <mat-option value="inactive"></mat-option>
        </mat-select>
       </mat-form-field>
      </form>

scss文件:

.mat-select-arrow{
    color: rgba(255, 255, 255, 0.54)!important;
  }
  .label-colors {
    color: #ffffff !important;
    font-size: 16px;
  }
  
  // mat-input caret color
  .input-element-color {
    caret-color: #ffffff !important;
  }
  .blue{
    background-color: blue; 
}
.mat-form-field-underline{
  background-color: rgb(61, 82, 89)!important;
}
.date-icons{
    color: #ffffff !important;
    width: 100%;
    height: 100%;
   }
   th{
    font-weight: bold !important ;
    color:black !important;
    font-size: 14px !important;
  }
  // .mat-select-value-text{
  //   color: #fff!important;
  // }

  .mat-form-field{
    //width: 155px; 
    margin: 3px;
  }
  // body.theme-default .mat-select-value{
  //   color: rgba(255, 255, 255, 0.87);
  // }
  .editdeleteicon{
    color: #003042;
  }
  .fix-text{
    white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   max-width: 88px; 
   padding: 0 10px !important;
  }
  .fix-text :hover{
    overflow: visible;

}

尝试了stackoverflow的所有建议,但似乎无法改变mat的颜色-选择并保持它的颜色,即使我可以,当我改变它时,它会改变其他地方。我希望我是清楚的

更新:通过添加类mat-form-field,然后在scss中修复

 .example-class{
    // inside this class added:
    .mat-select-value-text {
        color: red;
    }
    }

共有1个答案

金珂
2023-03-14

您使用了!重要,它有时对覆盖css很有帮助,但在这种情况下,您需要做一些更多的事情,因为它是angular material模块的一部分。因此,您有两种选择:

1-在类之前添加::ng-deep。例如:

::ng-deep.classname{color:blue!重要}

2-或者,您应该在style.css(或者style.scss取决于您使用的是css还是scc)中编写与上面所写的相同的内容,但这意味着这些更改将应用于应用程序中的任何地方,因此,例如,如果您在应用程序的另一部分中使用mat-select,则此处的更改将影响它,因为style.css/style.scss的范围在所有应用程序上。

所以你可以选择你需要的方法。

希望这能对你有所帮助!

 类似资料:
  • 我使用的是:Angular 4.4.5@Angular/Material:2.0.0-beta.12

  • 我试着用angular-6中的angular材质 我的材料。单元ts是这样的 它正在给出错误 请帮帮我

  • 我想突出显示点击的选定值的背景颜色。我正在演示这个例子,它突出显示了多个选择值。我想在单击以选择一个选项时只突出显示所选的值。

  • 我在使用角材料时遇到了一些问题,我尝试了很多解决方案,但都不起作用。这就是我想做的: 我正在使用带有反应形式的角材料制作一个表单,在我添加组件之前,一切都很好。这是我得到的 错误:mat form字段必须包含MatFormFieldControl。 这是我的代码: HTML: 组件: 模块: 我导入了模块以便Angular Material可以正常工作,实现了表单控件名称,但仍然得到了相同的。我尝

  • 我有一个mat网格列表,它具有用户定义行数和列数。我需要显示每个mat-grid-title单元格的所有边框。 但是,如何正确显示mat-grid-list的最外面的黑色边框呢? 这是我的stackblitz https://stackblitz.com/edit/Angular-7GJJJN 谢谢你

  • 我需要能够从角材料列表中删除选定的项目。为此,我决定从初始项目数组中减去选定项目数组(不确定这是最好的方法)。 我的问题是,我找不到一种方法来将超文本标记语言中的选定项数组传递给TS并使用它。 Angular材料在其留档中有以下示例: 其中x是mat-seltion-list选择器的ID,y是对所选元素执行的操作。但这似乎只适用于超文本标记语言。 下面是我不工作的代码。 HTML,其中我设置了列表