使用 SASS Mixin 更改 MDC 布局网格的间距大小
Change the size of the gutter of an MDC layout grid using a SASS Mixin
我正在尝试使用 SASS Mixin 更改 MDC Material 组件 Web 布局网格的间距大小,但失败了!
目前我在用:
.mdc-layout-grid-cell
{
@include mdc-layout-grid-cell('desktop', 3, 60px);
}
我可以看到正在使用 mixin...但是 gutter 保持不变的大小。
我做错了什么?
在您的示例中,MDC-Web 的单元格 class 应该是 mdc-layout-grid__cell
而不是 mdc-layout-grid-cell
:
.mdc-layout-grid__cell {
@include mdc-layout-grid-cell('desktop', 3, 60px);
}
此外,您需要指定CSS变量来修改装订线:
:root {
--mdc-layout-grid-gutter-desktop: 60px;
}
但是使用 mixin 会产生额外的 CSS,如果你想避免这种情况,你可以用 Sass variables 修改 Layout Grid。在 @import
布局网格之前,您需要在主 .scss
文件中使用修改后的值设置此变量:
// Gutter size
$mdc-layout-grid-default-gutter: (
desktop: 24px,
tablet: 16px,
phone: 16px
);
@import "@material/layout-grid/mdc-layout-grid";
还值得一提的是,您可以使用 !default
标志覆盖 MDC-Web 代码库中定义的任何 Sass 变量。
交叉post 来自 MDC Web's GitHub issue tracker 的讨论:
mixin 似乎没有做任何事情的原因是因为它设置了正确的 属性 值,但随后立即用支持它的浏览器的 CSS 变量覆盖它。
但是,我们从不更新 CSS 变量的值,因此现代浏览器会继续呈现继承的值。
例如(source):
// We could set --mdc-layout-grid-gutter-#{$size} to $gutter here...
grid-gap: $gutter;
grid-gap: var(--mdc-layout-grid-gutter-#{$size}, $gutter);
这是一个 bug 我们计划在某个时候修复的问题。随时欢迎社区帮助!
我正在尝试使用 SASS Mixin 更改 MDC Material 组件 Web 布局网格的间距大小,但失败了!
目前我在用:
.mdc-layout-grid-cell
{
@include mdc-layout-grid-cell('desktop', 3, 60px);
}
我可以看到正在使用 mixin...但是 gutter 保持不变的大小。
我做错了什么?
在您的示例中,MDC-Web 的单元格 class 应该是 mdc-layout-grid__cell
而不是 mdc-layout-grid-cell
:
.mdc-layout-grid__cell {
@include mdc-layout-grid-cell('desktop', 3, 60px);
}
此外,您需要指定CSS变量来修改装订线:
:root {
--mdc-layout-grid-gutter-desktop: 60px;
}
但是使用 mixin 会产生额外的 CSS,如果你想避免这种情况,你可以用 Sass variables 修改 Layout Grid。在 @import
布局网格之前,您需要在主 .scss
文件中使用修改后的值设置此变量:
// Gutter size
$mdc-layout-grid-default-gutter: (
desktop: 24px,
tablet: 16px,
phone: 16px
);
@import "@material/layout-grid/mdc-layout-grid";
还值得一提的是,您可以使用 !default
标志覆盖 MDC-Web 代码库中定义的任何 Sass 变量。
交叉post 来自 MDC Web's GitHub issue tracker 的讨论:
mixin 似乎没有做任何事情的原因是因为它设置了正确的 属性 值,但随后立即用支持它的浏览器的 CSS 变量覆盖它。
但是,我们从不更新 CSS 变量的值,因此现代浏览器会继续呈现继承的值。
例如(source):
// We could set --mdc-layout-grid-gutter-#{$size} to $gutter here...
grid-gap: $gutter;
grid-gap: var(--mdc-layout-grid-gutter-#{$size}, $gutter);
这是一个 bug 我们计划在某个时候修复的问题。随时欢迎社区帮助!