【发布时间】:2017-12-16 01:53:00
【问题描述】:
给定一个典型的 Angular Material 对话框,它在.mat-dialog-container 上设置了 80vw 的最大宽度,我如何制定一个选择器来覆盖它?我想要一个真正的全角对话框。
问题在于范围——Angular-CLI 使用范围属性选择器编译组件 CSS。
因此,这个:
.parent .child
变成:
.parent[some_attr] .child[some_other_attr]
但是,这个特定元素似乎没有附加到任何组件上——它没有动态生成的属性。
我尝试在对话框样式表和宿主组件的样式表中进行覆盖,但均未成功。
让我再试一次。我没有很好地解释这个问题。
假设我将它添加到我的主机组件样式表中:
.mat-dialog-container {
max-width: 100%;
}
我正在运行构建监视,因此重新编译了应用程序。 CSS 输出现在是这样的:
.mat-dialog-container[_ngcontent-c6] {
max-width: 100%;
}
但是,该元素实际上并没有 _ngcontent-c6 属性。该属性应用于.mat-dialog-container 的祖先的兄弟姐妹内部的其他元素。选择器是错误的。
如果我将该 CSS 添加到对话框组件的样式表中,则会发生类似的事情,但属性 ID 不同。
【问题讨论】:
-
防止将这些属性添加到元素的方法是禁用视图封装,但似乎您只能在每个组件的基础上这样做,而不是在每个元素或每个规则集上这样做。
标签: css angular css-selectors angular-material mddialog