在 Angular 页面之外使用 Angular Material 类

Using Angular Material classes outside Angular pages

我们正在重建我们的网络应用程序,并选择使用 Angular 作为前端框架和 Google Material 作为主要风格概念,因为它简单且流行。

我们的大部分页面将是 Angular 应用程序的一部分,但有些不是。我们希望在应用程序的任何页面使用相同的 classes/styles 和主题,避免代码重复。

主要问题是:如何在没有Angular的页面上使用Angular Material工具包中的Material设计类?我们没有找到完整的 Angular Material CSS 文档来简单地将 CSS link 与库和我们的主题附加到 "static" 页面。

谢谢!

上没有文档

Using Angular Material classes outside Angular pages

因为 Angular Material 不打算 consumed/used 作为 style/script 'toolkit'。它是 Angular 应用程序框架平台的组件库。它是通过使用自定义组件、指令等实现的,而不是通过将 类 应用于标准 HTML 来实现的。

例如,Angular Material 表单字段不是使用以下内容创建的:

<div class="mat-form-field">...</div>

它是用以下方法创建的:

<mat-form-field>...</mat-form-field>

在 Angular 之外当然行不通。

话虽这么说,style就是style,CSS就是CSS,只要导入页面就可以应用到任何地方。所以 <div class="mat-form-field">...</div> 可能会做一些事情,但它不太可能会做你可能希望它做的事情——结果会有很大差异。要点是 class="mat-form-field" 不是为使用 <mat-form-field> 生成的以外的工作而设计的。库的所有其余部分同上(对于某些组件的特定功能可能会有一些例外 - 不确定 - 但组件文档会注意到这一点)。

正式记录如何做某事需要针对该用途进行设计和支持。这显然不是这里的情况,所以这就是为什么没有任何官方文档的原因。

一个例外是 Angular Material 的排版 类,它可以用作常规 HTML 的 类,因此是 documented