Angular Material 2:如何将Dialog max-width覆盖为100vw?

use*_*298 9 angular-material angular

我正在尝试创建100%宽度的对话框.但是作为原始设置,它被限制为80vw.

.mat-dialog-container{
  max-width:80vw;
}
Run Code Online (Sandbox Code Playgroud)

我试过以下方法来覆盖这个值.但他们没有成功.

.mat-dialog-container {
  max-width: none;
  width: 100vw;
  height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)

.mat-dialog-container {
    max-width: none !important;
}
Run Code Online (Sandbox Code Playgroud)

有人请告诉我如何覆盖80vw到100vw.谢谢.

Fai*_*sal 15

在全局中添加一个css类,styles.css例如

.full-width-dialog .mat-dialog-container {
  max-width: 100vw !important;
}
Run Code Online (Sandbox Code Playgroud)

..然后提供panelClass给你的对话框:

this.dialog.open(MyDialogComponent, {panelClass: 'full-width-dialog'})
Run Code Online (Sandbox Code Playgroud)

阅读此文档.

  • 我试过这个,宽度:100vw; 不管用.解决方案是使用max-width:100vw!important; (2认同)
  • 这不再是实际的答案。请参阅/sf/answers/3802960591/ (2认同)

Grz*_*lec 7

尝试直接使用属性名称,如下所示:

this.dialog.open(MyDialogComponent, {maxWidth: '100vw !important'});
Run Code Online (Sandbox Code Playgroud)

这在Angular 7中对我有效。

  • 接受的答案对于角度 9 也不再有效 (5认同)
  • 谢谢,为此,我每天都把头撞在墙上!至少在Angular 7中,可接受的答案似乎不起作用。 (2认同)

小智 6

解决此问题的最简单方法:

 const dialogRef = this.dialog.open(
      MyDialogComponent, {
        width: '100vw',
        maxWidth: '100vw',
                         }
                                  )
Run Code Online (Sandbox Code Playgroud)

  • 欢迎使用SO,要以代码形式发布代码,请在代码前缩进4个空格或选择该代码,然后按Ctrl + K (2认同)
  • 我希望有一种 css 方法可以做到这一点,这样我就可以通过 CSS 在响应式网站中做一些不同的事情 (2认同)