如何在 Angular Material 7 中使用 CSS 操作 mat-snack-bar 模板的外观

Posted

技术标签:

【中文标题】如何在 Angular Material 7 中使用 CSS 操作 mat-snack-bar 模板的外观【英文标题】:How do I manipulate the look of a mat-snack-bar template using CSS in Angular Material 7 【发布时间】:2019-05-22 23:04:25 【问题描述】:

我看到的答案与我正在寻找的答案有点相似,但它们都没有最终解决我的具体问题。例如this answer 向您展示了如何更改小吃店的背景颜色并且它可以工作。如果您尝试操纵小吃店的宽度,那么问题似乎就是您可以在 CSS 中做的所有事情。

我看到的另一个答案:Overriding Default Style of SnackBar Component 但由于某种原因它不起作用。

所以现在我的问题是:

如何使用 CSS 处理 mat-snack-bar 模板的外观? (请告诉我如何:

    使宽度:100%(全屏时)和 让小吃吧出现在顶部

使用这个example in stackbiz

谢谢。

【问题讨论】:

【参考方案1】:

要覆盖 mat 样式,您应该放置您的 css 类 在 style.css 文件中,否则什么都不做

另一种方法是改变 ViewEncapsulation Mode

请看Diff between ViewEncapsulation.Native, ViewEncapsulation.None and ViewEncapsulation.Emulated

【讨论】:

谢谢。我已经在这样做了,但是要操纵宽度,您必须完整地放置 css 属性,如接受的答案中所示。只有这样它才能起作用。【参考方案2】:

你可以很简单地通过使用 CSS 来做到这一点。 您所要做的就是在定义类(例如 blue-snackbar)的 CSS 文件中添加以下内容:

.blue-snackbar 
  background: #2196F3;
  position: absolute; 
  top: 0;
  left: 0;
  right: 0;
  max-width: 100% !important;
  width: 100%;

我会回顾一下它的作用:

  position: absolute; 
  top: 0;
  left: 0;
  right: 0;

这些线确保小吃吧位于顶部(因此“顶部:0”)并延伸到整个可用空间(“位置:绝对”允许这种放置游戏)

  max-width: 100% !important;
  width: 100%;

最大宽度允许 div 占据页面的整个宽度,而宽度指示它。 "!important" 指令用于绕过任何与其他样式冲突的 CSS。

【讨论】:

谢谢。这行得通。早些时候,我只添加了宽度属性。我虽然打算在容器内使用它并使其宽度与容器的宽度相同。有了这个答案,我相信我会弄清楚的。

以上是关于如何在 Angular Material 7 中使用 CSS 操作 mat-snack-bar 模板的外观的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Material UI 中使 TextField 无效

如何在 kotlin 中使 Material Button ToggleGroup 的所有子项不可点击

如何使用 React JS 在 Material UI 中使整个 Card 组件可点击?

如何在 Angular Material 7 中使用 CSS 操作 mat-snack-bar 模板的外观

在 Angular Material CDK 拖放中,如何防止项目随着元素移动而自动重新排列?

Angular Material 7 使用带有拖放功能的网格