【发布时间】:2018-05-25 14:49:43
【问题描述】:
我正在尝试覆盖 Angular Material 中 snackbar 组件的默认最大宽度。
Angular Material应用的CSS如下图:
.mat-snack-bar-container {
border-radius: 2px;
box-sizing: border-box;
display: block;
margin: 24px;
max-width: 568px;
min-width: 288px;
padding: 14px 24px;
transform: translateY(100%) translateY(24px);
}
我曾尝试在我的 style.css 文件中使用相同的样式进行覆盖,但此样式已被默认样式覆盖。
.mat-snack-bar-container {
max-width: 800px;
}
我找到了similar question 的答案,但我知道该问题的答案现在已弃用(/deep/ 已弃用)。
对此有最佳实践解决方案吗?
【问题讨论】:
-
.mat-snack-bar-container { max-width: 800px!important; }
-
我已经尝试避免使用 !important 标签,因为它们也可能被认为是不好的做法
-
在这种情况下,您需要在使用零食的地方添加组件名称 your-component-tag .mat-snack-bar-container { max-width: 800px; }
-
我个人会使用 ng-deep。特别是如果有人要使用我的组件。
ViewEncapsulation.None本质上是用样式更新您的styles.css文件,实际上可能会导致更多混淆样式的来源。我考虑ViewEnapsulation.None的唯一用途是在初始化特定组件时在整个页面上动态加载一些样式。 Angular 使用的示例假设您的项目中没有styles.css,如果您使用的是 CLI,那么您有。
标签: css angular angular-material2