Jon*_*han 20 html css typescript angular-material angular
我试图让我的材质对话框在右上角有一个 X 按钮,但我遇到了定位问题。
组件.ts
this.d.open(loginComponent, {
width: '300px',
height: '',
panelClass: 'dialogC',
});
Run Code Online (Sandbox Code Playgroud)
组件.html
<mat-dialog-content>
<button mat-button class="close-icon" [mat-dialog-close]="true">
<mat-icon>close</mat-icon>
</button>
<h2 mat-dialog-title>Login</h2>
Run Code Online (Sandbox Code Playgroud)
样式文件
.dialogC {
position: relative !important;
}
.close-icon {
position: absolute;
top: 0;
right: 0;
transform: translate(50%, -50%);
}
Run Code Online (Sandbox Code Playgroud)
X 仅与左侧对齐,而不是与右上角对齐。建议?
更新,这是我添加 flex 后遇到的问题:
小智 20
<button class="close" mat-button (click)="onNoClick()">X</button>
<h1 mat-dialog-title>Login</h1>
<div mat-dialog-content>
...
...
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:(请在全局(styles.css)中给出ViewEncapsulation.NONE,否则这些样式不会影响。)
.cdk-overlay-pane.my-dialog {
position: relative!important;
}
.close.mat-button {
position: absolute;
top: 0;
right: 0;
padding: 5px;
line-height: 14px;
min-width: auto;
}
Run Code Online (Sandbox Code Playgroud)
请注意,在 CSS 中,我们现在凭空创建了一个新类 .my-dialog
所以,请panelClass在dialogRef下面提到,
this.dialog.open(DialogComponent, {
width: '250px',
panelClass: 'my-dialog',
..
..
Run Code Online (Sandbox Code Playgroud)
这给我带来了以下结果,
Ale*_*oti 16
使用mat-icon-button时只需要将下面的样式添加到按钮中即可。
.close-button{
float: right;
top:-24px;
right:-24px;
}
Run Code Online (Sandbox Code Playgroud)
功能示例:
小智 7
现在最简单的方法是:
<div mat-dialog-title class="dialog-title">
<h2>Title</h2>
<button mat-icon-button aria-label="close dialog" mat-dialog-close>
<mat-icon>close</mat-icon>
</button>
</div>
Run Code Online (Sandbox Code Playgroud)
对话框标题 css 是
.dialog-title {
display: flex;
justify-content: space-between;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
这适用于 Angular 8.0.0
| 归档时间: |
|
| 查看次数: |
49052 次 |
| 最近记录: |