弄清楚这一点的起点是查看在 Material-UI 中使用 mixin 的位置。我相信这只是在Toolbar。它也用于其他组件的几个演示中,例如Drawer,但我认为Toolbar 是库本身中唯一使用它的地方。
您还可以查看mixin itself 的源代码,如下所示:
toolbar: {
minHeight: 56,
[`${breakpoints.up('xs')} and (orientation: landscape)`]: {
minHeight: 48,
},
[breakpoints.up('sm')]: {
minHeight: 64,
},
},
Responsive drawer demo 是一个在几个地方使用 mixin 的演示。演示的源代码可以在这里看到:https://codesandbox.io/s/v66pl。
您可以查看该演示中<head> 元素中的样式,并查找为MuiToolbar 生成的内容。具体来说,它的regular 类是使用mixin 的类。
这是生成的 CSS:
.MuiToolbar-regular {
min-height: 56px;
}
@media (min-width:0px) and (orientation: landscape) {
.MuiToolbar-regular {
min-height: 48px;
}
}
@media (min-width:600px) {
.MuiToolbar-regular {
min-height: 64px;
}
}
要在不使用主题的情况下利用此 CSS,只需将此 CSS 复制到具有不同类名的 SCSS 文件中:
.plain-css-mui-toolbar-mixin {
min-height: 56px;
}
@media (min-width: 0px) and (orientation: landscape) {
.plain-css-mui-toolbar-mixin {
min-height: 48px;
}
}
@media (min-width: 600px) {
.plain-css-mui-toolbar-mixin {
min-height: 64px;
}
}
然后在适当的地方使用它。您可以在我的响应式抽屉演示的更改版本中看到这一点:https://codesandbox.io/s/toolbar-mixin-3l58u