如何在 Angular/Material 8 中标记 mat-slide-toggle 控件的两侧?
How to label both sides of a mat-slide-toggle control in Angular/Material 8?
我在设置屏幕上使用 mat-slide-toggle 来显示各种 "this or that" 选项,例如:
<div class="row">
<div class="column">
Automatically adjust display to screen
</div>
<div class="column">
<mat-label>Off </mat-label>
<mat-slide-toggle formControlName="autoLayout">On</mat-slide-toggle>
<mat-label> On</mat-label>
</div>
</div>
<div class="row">
<div class="column">
Choose preferred manual layout
</div>
<div class="column">
Landscape <mat-slide-toggle formControlName="portrait"></mat-slide-toggle> Portrait
</div>
</div>
看起来像这样:
请注意,作为 mat-slide-toggle 一部分的 "On" 的样式与不受控制的 Off/On 略有不同。
有没有什么方法可以复制内部标签,在切换开关的左侧和右侧,而不必做大量的 CSS jiggery-pokery,我'已经尝试过但失败了吗?
将 class mat-slide-toggle-content
(由 angular material 定义并应用于标签)添加到您的辅助标签,并将以下三个 CSS 规则附加到标签.
vertical-align: top;
display: inline-block;
line-height: 24px; // this is defined in .mat-slide-toggle
在您的模块中:
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatFormFieldModule } from '@angular/material/form-field';
...
@NgModule({
declarations: [...],
imports: [
...
MatSlideToggleModule,
MatFormFieldModule
],
exports: []
})
在你的html中:
<div class="container">
<div class="row ">
...
<div class="col ">
<mat-label ngClass="labelBeforeSlide">Off</mat-label>
<mat-slide-toggle>On</mat-slide-toggle>
</div>
...
在你的css中:
.labelBeforeSlide {
vertical-align: top;
line-height: 24px;
margin-right:0.5rem;
margin-bottom:0.5rem;
}
我在设置屏幕上使用 mat-slide-toggle 来显示各种 "this or that" 选项,例如:
<div class="row">
<div class="column">
Automatically adjust display to screen
</div>
<div class="column">
<mat-label>Off </mat-label>
<mat-slide-toggle formControlName="autoLayout">On</mat-slide-toggle>
<mat-label> On</mat-label>
</div>
</div>
<div class="row">
<div class="column">
Choose preferred manual layout
</div>
<div class="column">
Landscape <mat-slide-toggle formControlName="portrait"></mat-slide-toggle> Portrait
</div>
</div>
看起来像这样:
请注意,作为 mat-slide-toggle 一部分的 "On" 的样式与不受控制的 Off/On 略有不同。
有没有什么方法可以复制内部标签,在切换开关的左侧和右侧,而不必做大量的 CSS jiggery-pokery,我'已经尝试过但失败了吗?
将 class mat-slide-toggle-content
(由 angular material 定义并应用于标签)添加到您的辅助标签,并将以下三个 CSS 规则附加到标签.
vertical-align: top;
display: inline-block;
line-height: 24px; // this is defined in .mat-slide-toggle
在您的模块中:
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
import { MatFormFieldModule } from '@angular/material/form-field';
...
@NgModule({
declarations: [...],
imports: [
...
MatSlideToggleModule,
MatFormFieldModule
],
exports: []
})
在你的html中:
<div class="container">
<div class="row ">
...
<div class="col ">
<mat-label ngClass="labelBeforeSlide">Off</mat-label>
<mat-slide-toggle>On</mat-slide-toggle>
</div>
...
在你的css中:
.labelBeforeSlide {
vertical-align: top;
line-height: 24px;
margin-right:0.5rem;
margin-bottom:0.5rem;
}