当 mat-form-field 包含 mat-select 并位于 mat-tab 中时,如何删除 mat-form-field 的灰色边距

How to remove gray margin of mat-form-field when it contains mat-select and sits in mat-tab

提问人:xymzh 提问时间:11/9/2023 最后编辑:xymzh 更新时间:11/9/2023 访问量:21

问:

我正在选项卡标题中构建一个下拉列表,例如:

<mat-tab-group animationDuration="0ms" (selectedTabChange)="tabClick($event)">
  <mat-tab *ngFor="let tab of tabs;" label="{{tab.name}}">
     <ng-template mat-tab-label *ngIf="tab.type === 'group'">
       <mat-form-field appearance="fill" class="form-in-tab">
         <mat-select matNativeControl required (ngModelChange)="onSubTabSelected($event)" [(ngModel)]="_selected_sub_tab" class="dropdown-in-tab">
           <mat-option *ngFor="let sub_tab of tab.sub_tabs" [value]="sub_tab.name" class="option-dropdown-in-tab">
             {{sub_tab.name}}
           </mat-option>
         </mat-select>
       </mat-form-field>
     </ng-template>
  ......

在样式文件中,我尝试:

::ng-deep .form-in-tab{
  width: 300px;
  color: white;
  background-color: white;
  margin-bottom: -1.25em;
  padding: 0em 0 !important
}
.dropdown-in-tab{
  margin: 0px;
  padding-top: 12px;
  background-color: #FFFFFF;
}
.option-dropdown-in-tab{
  margin: 0px;
  padding-top: 12px;
  background-color: #FFFFFF;
}

ts 文件中的选项卡结构非常简单:

class TabObj {
  name: string = '';
  type: string = 'group';
  sub_tabs: TabObj[] = [];
}
...

public tabs:TabObj[] = [];
...

由于 mat-tabs 的背景都是白色的,我想确保这个 mat-form-field+mat-select 也显示为全白色。但是,它的顶部、左侧和右侧都有这个灰色边缘,很难去除。我尝试了margin: 0!important和padding: 0!important等,似乎只有margin-bottom:-1.25em有点工作,尽管我需要将其进一步推到-2.em。

有人知道怎么做吗?

边距 mat-select mat-tab mat-form-field

评论


答: 暂无答案