当前位置: 首页 > 面试题库 >

在Angular Material中对样式进行选择

冯新知
2023-03-14
问题内容

如何为mat-select的面板组件设置样式。从文档中我得到我需要提供panelClass,所以我将其设置为:

<mat-form-field>
  <mat-select placeholder="Search for"
    [(ngModel)]="searchClassVal"
    panelClass="my-select-panel-class"
    (change)="onSearchClassSelect($event)">
    <mat-option *ngFor="let class of searchClasses" [value]="class.value">{{class.name}}</mat-option>
  </mat-select>
</mat-form-field>

我在开发人员工具中检查了此类是否已附加到DOM中的面板并已附加。因此,我将自定义scss类附加到此元素。现在,当我提供CSS时,它根本不起作用。例如,我的s​​css如下所示:

.my-select-panel-class {
    width:20px;
    max-width:20px;
    background-color: red;
    font-size: 10px;
}

面板的宽度始终等于width选择元素的宽度。有时在选项中,您的字符串太长,我想使其更宽一些。有什么办法可以做到这一点。我组件中的样式甚至background- color不起作用。有人知道为什么这如此奇怪吗?

我正在使用:角4.4.5 @角/材质:2.0.0-beta.12


问题答案:

Angular Material mat-select-content用作选择列表内容的类名。对于其样式,我将建议四个选项。

1.使用 :: ng-deep:

使用/ deep /刺穿阴影的后代组合器将样式向下强制通过子组件树进入所有子组件视图。/ deep
/组合器适用于嵌套组件的任何深度,并且适用于该组件的视图子级和内容子级。/ deep /,>>>和:: ng-
deep仅与模拟视图封装一起使用。默认是最常用的视图封装。有关更多信息,请参见“控制视图封装”部分。不推荐使用穿刺阴影的后代组合器,并且从主要的浏览器和工具中删除了对它的支持。因此,我们计划放弃对Angular的支持(针对/
deep /,>>>和:: ng-deep的全部3个)。在此之前,应首选:: ng-deep以获得与工具的广泛兼容性。


CSS:

::ng-deep .mat-select-content{
    width:2000px;
    background-color: red;
    font-size: 10px;   
}

2.使用ViewEncapsulation

…组件CSS样式封装在组件的视图中,不会影响应用程序的其余部分。要控制每个组件的封装方式,可以在组件元数据中设置视图封装模式。从以下模式中选择:....无表示Angular不进行视图封装。Angular将CSS添加到全局样式中。先前讨论的范围规则,隔离和保护不适用。这本质上与将组件的样式粘贴到HTML中相同。

没有值是打破封装并从组件设置材料样式所需要的。因此可以在组件的选择器上进行设置:

打字稿:

  import {ViewEncapsulation } from '@angular/core';
  ....
  @Component({
        ....
        encapsulation: ViewEncapsulation.None
 })

的CSS

.mat-select-content{
    width:2000px;
    background-color: red;
    font-size: 10px;
}

3.在style.css中设置类样式

这次,您也必须“强制”样式!important

style.css

 .mat-select-content{
   width:2000px !important;
   background-color: red !important;
   font-size: 10px !important;
 }

4.使用内联样式

<mat-option style="width:2000px; background-color: red; font-size: 10px;" ...>


 类似资料:
  • 问题内容: 有什么有效的方法来连接JSON数据吗?假设我们有两个JSON数据集: 我想将其转换为以下客户端: 请记住,这里将有成千上万条包含更为复杂的数据结构的记录。jQuery和香草javascript都很好。还请记住,可能会有没有水果的颜色和没有颜色的水果。 注意:为了简单起见,假设两个数据集的顺序相同,但是第二个数据集可能有间隔。 问题答案: 没有直接的方法,但是您可以编写逻辑来获得这样的组

  • 本文向大家介绍CSS样式选择选项,包括了CSS样式选择选项的使用技巧和注意事项,需要的朋友参考一下 要为<select>中的选项设置样式,您可以尝试运行以下代码, 示例

  • 要组织和排列您的图稿,请使用工具以便精确地选择、放置和堆叠对象。您可以测量和对齐对象;编组对象以便能够将其视为一个单元进行操作;有选择地隔离、锁定或隐藏对象。 选区选项和首选项 用于选择对象的选项 在可以修改某个对象之前,需要将其与周围的对象区分开来。只需选择对象,即可加以区分。只要选择了对象或者对象的一部分,即可对其进行编辑。 Illustrator 提供以下选择方法和工具: 隔离模式 可让您快

  • 我想创建一个包含一些元素的数组,然后迭代(使用.foreach或.map)它。但每个数组元素必须具有不同的样式。例如,我有一个数组如下所示: 另外,我想在另一个组件中重用数组的一些单独元素。我怎么能那样做? (假设每个元素中的最后一个单词是一个单独的样式,例如background-color或color,) 你能帮帮我吗?请给我一个建议,我会怎么做?

  • 如何对SELECT中的每一行执行附加查询(UPDATE)?我必须从select中获取每一行的金额,并将其发送到用户的余额表。 示例: 我的select语句: 从市场表中选择结果 我们得到7个金额并将其发送到用户余额表。 用户的余额表 Postgres版本9.3

  • 我一直在尝试更改选择选项的样式。例如添加颜色和背景似乎可以使用下面的代码。但它不起作用,例如边距:20px,边框或任何东西。一直在尝试不同的东西和JS和JQueary,但我不能让它工作,所有的提示都是欢迎的!:) null null