Angular Material mat-form-field 多行占位符文本
Angular Material mat-form-field Placeholder text on multiple lines
我用的是普通的 mat-form-field
,里面有 textarea
。我的问题是此文本区域的占位符文本相当长。在移动设备中,space 受到更多限制,此占位符文本被 Angular Material 截断并带有省略号。
我想通过向下移动到下一行来使占位符文本适应 space 限制。因此,例如,而不是:
This is a really long text and it cannot fit on a single li...
我愿意:
This is a really long text and it cannot fit on a single
line
我已经尝试了各种方法来更改 mat-input-placeholder
和 mat-input-placeholder-wrapper
的 CSS,但没有成功。我知道部分解决方案涉及更改文本溢出 属性(如下),但我无法获得其他部分。
::ng-deep .mat-input-placeholder {
text-overflow: clip;
}
有人能帮忙吗?
谢谢!
::ng-deep
已弃用。
相反,您应该使用 ViewEncapsulation
并控制组件内部的 CSS。
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css'],
encapsulation: ViewEncapsulation.None,
})
对于占位符(从元素中删除 placeholder
):
<mat-placeholder style="white-space: normal;">{{question.label}}</mat-placeholder>
然后在 example.component.css
中添加不带 ::ng-deep
的 CSS 样式
.mat-form-field-label {
white-space: normal;
}
textarea.mat-input-element {
padding: 0px 0;
margin: 5px 0;
}
.mat-input-placeholder {
white-space: normal;
}
换行文字:
<textarea></textarea>
<textarea
matInput
#fileName="ngModel"
name="fileName"
[(ngModel)]="action!.params.file!.originalName"
type="text"
autocomplete="off"
autocapitalize="off"
readonly
required
[matTooltip]="action!.params.file!.originalName"
></textarea>
溢出剪辑文本:
<input/>
<input
matInput
#fileName="ngModel"
name="fileName"
[(ngModel)]="action!.params.file!.originalName"
type="text"
autocomplete="off"
autocapitalize="off"
readonly
required
[matTooltip]="action!.params.file!.originalName"
/>
我用的是普通的 mat-form-field
,里面有 textarea
。我的问题是此文本区域的占位符文本相当长。在移动设备中,space 受到更多限制,此占位符文本被 Angular Material 截断并带有省略号。
我想通过向下移动到下一行来使占位符文本适应 space 限制。因此,例如,而不是:
This is a really long text and it cannot fit on a single li...
我愿意:
This is a really long text and it cannot fit on a single
line
我已经尝试了各种方法来更改 mat-input-placeholder
和 mat-input-placeholder-wrapper
的 CSS,但没有成功。我知道部分解决方案涉及更改文本溢出 属性(如下),但我无法获得其他部分。
::ng-deep .mat-input-placeholder {
text-overflow: clip;
}
有人能帮忙吗?
谢谢!
::ng-deep
已弃用。
相反,您应该使用 ViewEncapsulation
并控制组件内部的 CSS。
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css'],
encapsulation: ViewEncapsulation.None,
})
对于占位符(从元素中删除 placeholder
):
<mat-placeholder style="white-space: normal;">{{question.label}}</mat-placeholder>
然后在 example.component.css
::ng-deep
的 CSS 样式
.mat-form-field-label {
white-space: normal;
}
textarea.mat-input-element {
padding: 0px 0;
margin: 5px 0;
}
.mat-input-placeholder {
white-space: normal;
}
换行文字:
<textarea></textarea>
<textarea
matInput
#fileName="ngModel"
name="fileName"
[(ngModel)]="action!.params.file!.originalName"
type="text"
autocomplete="off"
autocapitalize="off"
readonly
required
[matTooltip]="action!.params.file!.originalName"
></textarea>
溢出剪辑文本:
<input/>
<input
matInput
#fileName="ngModel"
name="fileName"
[(ngModel)]="action!.params.file!.originalName"
type="text"
autocomplete="off"
autocapitalize="off"
readonly
required
[matTooltip]="action!.params.file!.originalName"
/>